摘要: codevs 3625 1 #include <bits/stdc++.h> 2 using namespace std; 3 int x[11111], y[11111]; 4 int main() 5 { 6 int n; scanf("%d", &n); 7 for(int i = 1; i 阅读全文
posted @ 2018-09-25 23:06 汪汪鱼 阅读(387) 评论(0) 推荐(0) 编辑
摘要: 题目链接 官网题解写的好清楚,和昨晚Aguin说的一模一样…… 这题只和每个数1的个数有关,设每个数1的个数的数组为$b$,就是首先一段如果是好的,要满足两个条件: 1.这一段$b$数组和为偶数,因为奇数总会多出一个1,消不掉。 2.这一段$b$数组中最大的要小于等于这一段总和的一半,因为自己里面的 阅读全文
posted @ 2018-09-24 15:30 汪汪鱼 阅读(398) 评论(2) 推荐(1) 编辑
摘要: 看的这个题解:http://www.cnblogs.com/tobyw/p/9685639.html 写的比较清楚。 矩阵类型的计数题 比赛时感觉就像是个dp,然后就跳过了。 现在看着题解写一下,感觉还算可以理解。但是没有dp的思维啊,肯定想不出来的。。 阅读全文
posted @ 2018-09-24 02:03 汪汪鱼 阅读(189) 评论(0) 推荐(0) 编辑
摘要: 多源点最短路。 但是有限制,m - n <= 20,边数 - 点数 <= 20, 所以这个图非常的稀疏。 任意提取出一个生成树出来,LCA处理任意两点最短路。 然后再去遍历那些多余出来的点(非树边的两个端点),看他们能不能更新答案(相当于松弛)。这里跑40个最短路预处理出来(最多40个点,但是必须在 阅读全文
posted @ 2018-09-24 01:04 汪汪鱼 阅读(220) 评论(0) 推荐(0) 编辑
摘要: 题目链接:The Shortest Statement 今天又在群里看到一个同学问$n$个$n$条边,怎么查询两点直接最短路。看来这种题还挺常见的。 为什么最终答案要从42个点的最短路(到$x,y$)之和,还有$x,y$到$LCA(x,y)$的距离里面取呢? 就是如果走非树边,那么一定要走42个点中 阅读全文
posted @ 2018-09-23 19:03 汪汪鱼 阅读(128) 评论(0) 推荐(0) 编辑
摘要: 题目链接 题目就是找每个数的最小素因子,然后递归除,本来没啥问题,结果今天又学习了个新坑点。 我交了题后,疯狂CE,我以为爆内存,结果是,我对全局数组赋值, 如果直接赋值,会直接在exe内产生内存,否则只会在运行时才分配内存。 阅读全文
posted @ 2018-09-22 16:52 汪汪鱼 阅读(497) 评论(0) 推荐(0) 编辑
摘要: 题目链接 题意:就是给你一颗这样的树,用一个$y$来除以两点之间每条边的权值,比如$3->7$,问最后的y的是多少,修改操作是把权值变成更小的。 这个$(y<=10^{18})$除的权值如果是$>=2$,那么最多除60几次就变成0了,问题关键是路径上会有好多1存在,这时候我们可以用并查集把他们并到一 阅读全文
posted @ 2018-09-20 21:16 汪汪鱼 阅读(224) 评论(0) 推荐(0) 编辑
摘要: 好久没写过这么长的代码了,题解东哥讲了那么多,并查集优化还是很厉害的,赶快做做前几天碰到的相似的题。 阅读全文
posted @ 2018-09-20 20:05 汪汪鱼 阅读(198) 评论(0) 推荐(0) 编辑
摘要: Codeforces 1041 E 构造题。 给出一种操作,对于一棵树,去掉它的一条边。那么这颗树被分成两个部分,两个部分的分别的最大值就是这次操作的答案。 现在给出一棵树所有操作的结果,问能不能构造这样一颗树,可以的话输出它。 反正就是看每个数出现了几次,然后形成一条链,从这个数开始,依次减小,链 阅读全文
posted @ 2018-09-20 19:04 汪汪鱼 阅读(213) 评论(0) 推荐(0) 编辑
摘要: Hdu5921 Binary Indexed Tree 思路 计数问题,题目重点在于二进制下1的次数的统计,很多题解用了数位DP来辅助计算,定义g(i)表示i的二进制中1的个数, $ans = \sum_{i=1}^n \sum_{j=0}^{i 1} g(i,j) = 0.5\sum_{i=0}^ 阅读全文
posted @ 2018-09-19 23:45 汪汪鱼 阅读(279) 评论(0) 推荐(0) 编辑