摘要: 总感觉这题是个题意杀,理解错题目了,看了好久才发现题目意思:操作是让,只要两点没有直接相连,而且只要有一条路的距离3,就可以把这两点连接起来。 按照题解中讲的,可以把图分为二分图和非二分图来解。不过题解中的操作我没看懂。。但是画几个图看看就很清除了。 先说二分图: 可以看到,两个点集中,斜对着的点的 阅读全文
posted @ 2017-10-11 12:29 追梦的蚂蚁 阅读(174) 评论(0) 推荐(0) 编辑
摘要: 当时没做出来,官方题解没看懂,就看别人提交的代码,刚对着别人代码调了几组数据,才发现,思路差不多,不过,原来是这样实现啊,果然我还是很菜 思路:题目要求是选取的这些数字全部进行OR运算,结果k,肯定有一位到多位在结果中是1,但是k中是0,但是怎么选择去掉哪个呢?我是想着计算每个数在每一位的贡献,把小 阅读全文
posted @ 2017-10-01 16:20 追梦的蚂蚁 阅读(186) 评论(0) 推荐(0) 编辑
摘要: 这题看了好几天才看懂,一直误解题解中的d d了 题解中说把大的格子划分成d d的方格,我划分的时候把格子当作点来算的,一直觉得那明明是(d 1) (d 1),昨天刚反映过来 思路:把格子旋转45度,坐标扩大sqrt(2)倍,也就是(i,j) (i+j,i j),把曼哈顿距离转换为切比雪夫距离来进行计 阅读全文
posted @ 2017-09-28 15:54 追梦的蚂蚁 阅读(219) 评论(0) 推荐(1) 编辑
摘要: 彩笔看到题目后,除了懵逼,没有啥反应了,唯一想的就是 这是不是dp啊?看了题解才发现,原来是这样啊。 画几个矩阵看看就能看出来规律。 思路:先假设这是个M N的矩阵 如果M和N都是偶数,则每个出现的字母的个数都必须是偶数个,如果有某个字母出现奇数个的话,肯定不会对称,因为M和N都是偶数,所以每个字母 阅读全文
posted @ 2017-09-25 16:17 追梦的蚂蚁 阅读(210) 评论(0) 推荐(0) 编辑
摘要: 平时没见过这样的题目,看到后很懵逼。没想到。 思路:按下按钮的顺序并不影响结果,一个按钮要么按一次,要么不按,按多了也没用,比如:按3次和按1次没啥区别。 假设这是个M N的矩阵,我们已经按下了k行和l列的按钮,那么所有翻转的方块数就是k (M l)+l (N k),枚举这个值进行对比就好了。 c+ 阅读全文
posted @ 2017-09-25 16:01 追梦的蚂蚁 阅读(112) 评论(0) 推荐(0) 编辑
摘要: 还是素数线性筛 MAXN = 2000000 prime = [0 for i in range(MAXN+1)] res = 0 for i in range(2,MAXN+1): if prime[i] == 0: res += i prime[0] += 1 prime[prime[0]] = 阅读全文
posted @ 2017-09-21 23:38 追梦的蚂蚁 阅读(131) 评论(0) 推荐(0) 编辑
摘要: 我是俩循环暴力 看了看给的文档,英语并不好,有点懵,所以找了个中文的博客看了看: " 勾股数组学习小记" 。里面有两个学习链接和例题。 import math def calc(): for i in range(1,1000): j = i+1 while j 1000: break if i 阅读全文
posted @ 2017-09-21 23:28 追梦的蚂蚁 阅读(139) 评论(0) 推荐(0) 编辑
摘要: 直接暴力 写完才想到,代码写矬了,扫一遍就出结果了,哪还用我写的这么麻烦 阅读全文
posted @ 2017-09-21 22:43 追梦的蚂蚁 阅读(132) 评论(0) 推荐(0) 编辑
摘要: 素数线性筛 MAXN = 110100 prime = [0 for i in range(210000)] for i in range(2,MAXN): if prime[i] == 0: prime[0] += 1 prime[prime[0]] = i j = 1 while j 阅读全文
posted @ 2017-09-20 22:00 追梦的蚂蚁 阅读(160) 评论(0) 推荐(0) 编辑
摘要: 我的做法就是暴力,1+...+n 用前n项和公式就行 1^2+2^2+....+n^2就暴力了 做完后在讨论版发现两个有趣的东西。 一个是 (1+2+3+...+n)^2=(1^3)+(2^3)+(3^3)+...+(n^3) 另一个是 1^2+2^2+....+n^2的公式以及推导。 假设f(n) 阅读全文
posted @ 2017-09-20 21:26 追梦的蚂蚁 阅读(145) 评论(0) 推荐(0) 编辑