摘要:x[i] 表示:从第一步到第i步为止,横坐标的位置;y[i]表示:从第一步到第i步为止, 纵坐标的位置;设 字符串S的长度为 len;则有 k * x[len] + x[i] = a; 而且 k * y[len] + y[i] = b; (这里 下标从1开始),而且要注意的是 k 为非负整数, 还要...
阅读全文
摘要:题目链接附上代码: 1 #include 2 #include 3 #include 4 5 #define mod 1000000007 6 int n, k; 7 // dp[len][last] 8 int dp[2005][2005]; 9 10 int 11 main(void) {12...
阅读全文
摘要:题目链接这题真的体现了自己思维的不足,考虑问题只是考虑他的特殊性,却不能总结出它的一般性规律。对于这题, 如果L == R , 那么结果为0.否则, 我们只需要找到最高的某一位 (二进制数中的某一位, 设为第p位, 从0开始编号),使得要找的两个数从最高位到最低位, 在第p位第一次出现不同,如 11...
阅读全文
摘要:题目链接首先考虑无解的情况: n / 2 > k 或者 n==1 且 k != 0 (因为两个数的最大公约数最小为1)然后因为有 n / 2 组(把 a[i] 和 a[i+1] 看成一组), 所以我可以试 a[1] 和 a[2]的最大公约数为 k - n / 2 + 1, 这样后面的每个组只需要为1...
阅读全文
摘要:题目链接当时没有做出来,日后想了一会儿也没有好的思路。看了题解才发现自己压根就没有找到题目的关键所在。正如上面所说的那样,除了对角线上的元素外,Aij * Aji 都计算了两遍,所以和结果没有关系。代码如下(优化的不够彻底): 1 #include 2 #include 3 4 int n, ...
阅读全文
摘要:毫无疑问这题不是难题,但是这种题目最让人纠结打心里对这种题目就比较害怕,果然,各种WE这里贴上代码,用Python写的,比较偷懒: 1 def cur_pos(a, d): 2 3 if 0 <= d <= a: 4 return d, 0.0 5 elif a <...
阅读全文
摘要:这题纠结了近半年,一直没有好的思路。刚开始看这题的时候就是暴力,明显的TLE后来才知道这题的“一种解”肯定是"原数列中某些数的集合" (很明显这题的最优策略并不唯一)有原数列 a , 数列 b 是数列 a 的一个有序拷贝(对 a 进行不减排序的结果)下面就是 dp...此外这题还需要使用滚动数组,因...
阅读全文
摘要:题目链接: http://codeforces.com/contest/300/problem/C本来是道不难的题目,还是自己的数学功底不扎实。从该题又一次巩固了关于乘法逆的概念,在剩余系中,如果要做除法,如 a / b%n , 此时应该计算 a * (b在n下的逆), 而不是直接计算 a / b另...
阅读全文
摘要:这是一道数学题,真是很考验数学思维,之前也遇到过相似的问题,但是依然是想不到点子上,就这提而言,最重要的就是能否发现由 1, 6, 8,9这四个数字组成的排列对7取模是可以得到0, 1, 2, 3, 4, 5, 6的。也许这就是经验。。。。找到思路了。不要高兴太早。随之而来的就是效率问题。py效率本...
阅读全文
摘要:这题有个注意的地方,就是对集合边读边删除的时候,应该尤为注意。。 my_set.erase(it++) 1 #include 2 3 #include 4 #include 5 6 using namespace std; 7 8 int color[300005]; 9 10 int ...
阅读全文
摘要:/*做完这题发现自己好水,太伤人了。。。。不过还是学到一些,如果直接暴力模拟的话肯定是TLM。。所以要用虚拟数组来分别保存当前数组的每行没列在初始数组中的位置。。。*/#include#includeusing namespace std;#define max 1000+5int a[max][m...
阅读全文