题意:给定n个点下面n行表示n个坐标,问最多能组成几个正方形这里正方形是:遍历其中2个点,判断另外2个点是否存在//下面的公式来自http://blog.csdn.net/lyy289065406/article/details/6647405已知: (x1,y1) (x2,y2)则:x3=x1+(y1-y2) y3= y1-(x1-x2)x4=x2+(y1-
题意:求方程解的个数这里4个x都不相关,所以只要计算 ax1^2+bx2^2==cx3^2+dx4^2遍历找出左边所有的解,然后对应找出右式的值对应的答案(这里0都挖掉了)从1开始遍历(因为平方-1和1解不重复计算)最后结果*16 //这一步优化很给力#include #include #define N 1000001int hash1[N],hash2[N];
题目链接:点击打开链接#include #include typedef unsigned long long ll;const int key = (int)(1e9) + 7;const int N = 150010;char b[N], a[N + N];ll xp[N], h[N + N];int len;void get() { char ch; wh
题目链接:点击打开链接 题意: 给出长度为n的字符串,常数k 下面一个长度为n的字符串。 问: for(int i = 1; i 字符串的前i个字符 能否构成 形如A+B+A+B+A+B+A的形式,其中A有k+1个,B有k个 A和B是2个任意的字符串(也可以为空串) 若可以构成则输出1,否则输出0 } 思路: POJ1961 先用kmp求一个前缀循环节,。 我们观察 A
题目链接:点击打开链接#include #include #include #include using namespace std;typedef unsigned long long ll;const int key = 1e9 + 7;const int N = 2000 + 2;ll xp[N], h[N];char a[N], b[N], c[N];int
题目链接:点击打开链接题意:给出闹钟的n个指针当前所指的角度求2个闹钟通过旋转后能否相同思路:先排个序保证偏序的关系,然后坐差,枚举第二个串的哪一位和第一个串的第一字符匹配,然后hash判断#include #include #include #include #include template inline bool rd(T &ret)
Copyright © 2005-2024 51CTO.COM 版权所有 京ICP证060544号