摘要:http://codeforces.com/gym/100712/attachments 题意是给定一个无向图,要求添加一条边,使得最后剩下的桥的数量最小。 注意到在环中加边是无意义的。 那么先把环都缩成一个点,然后重新建立一颗树,找出树的直径就好。 #include <cstdio> #inclu
阅读全文
摘要:http://codeforces.com/contest/789/problem/C 首先按题目要求处理出dis数组。 那么对于任意一个区间,[L, R],是dis[L] - dis[L + 1] + dis[L + 2] .... + 那么怎么知道是+还是—呢? 注意到对于一个数,要么是正,要么
阅读全文
摘要:http://codeforces.com/contest/792/problem/C 这题奇葩题我居然用dp过了。 如果要模拟的话,可以用一个栈保存,保存每一个%3 = 2的pos,%3 = 1的pos,注意到题目是最多删除2个数,就能使得整个数%3=0了,如果要删除前导0的话就另外算。 那么贪心
阅读全文
摘要:http://poj.org/problem?id=3020 首先注意到,答案的最大值是'*'的个数,也就是相当于我每用一次那个技能,我只套一个'*',是等价的。 所以,每结合一对**,则可以减少一次使用,所以就是找**的最大匹配数目。 对于每一个*,和它的上下左右连接一条边(如果是*才连) 那么,
阅读全文
摘要:http://poj.org/problem?id=2186 首先求出所有的强连通分量,分好块。然后对于每一个强连通分量,都标记下他们的出度。那么只有出度是0 的块才有可能是答案,为什么呢?因为既然你有了出度,那么就是指向了另外一个块,那么你就不能指望那个块也指向你了,因为这样会形成环,所以肯定有一
阅读全文
摘要:http://poj.org/problem?id=2065 题目是要求 如果str[i] = '*'那就是等于0 求这n条方程在%p下的解。 我看了网上的题解说是高斯消元 + 扩展欧几里德。 然后我自己想了想,就用了高斯消元 + 费马小定理。因为%p是质数,所以很容易就用上了费马小定理,就是在除法
阅读全文
摘要:http://poj.org/problem?id=1830 如果开关s1操作一次,则会有s1(记住自己也会变)、和s1连接的开关都会做一次操作。 那么设矩阵a[i][j]表示按下了开关j,开关i会被操作一次,记得a[i][i] = 1是必须的,因为开关i操作一次,本身肯定会变化一次。 所以有n个开
阅读全文
摘要:https://github.com/liuweiming1997 需要使用IE内核 我也有自己的github啦,第一个上传的当然是自己的模板啦,虽然简陋,但是开心啊。 其实我自己也不太会用。 反正我试过网页版的Upload files是不行的,那为什么要弄出来。。。 只能用windows版本的上传
阅读全文
摘要:http://acm.hdu.edu.cn/showproblem.php?pid=3359 题目的意思是,由矩阵A生成矩阵B的方法是: 以a[i][j]为中心的,哈曼顿距离不大于dis的数字的总和 / 个数,就是矩阵B的b[i][j] 现在给出B,要求A 那么我们设A矩阵为a[1][1], a[1
阅读全文
摘要:http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1640 一开始想的时候,看到要使得最大值最小,那这样肯定是二分这个最大值了,然后每一次都跑一次kruskal 这样的复杂度是O(E * 64),然后被卡TLE了 然后观察到k
阅读全文
摘要:http://acm.hdu.edu.cn/showproblem.php?pid=3117 fib是有一个数学公式的。 这里的是标准的fib公式 那么fib = 1 / sqrt(5) * ((1 + sqrt(5) / 2) ^ n - ((1 - sqrt(5)) / 2)^n) = 1 /
阅读全文
摘要:http://lightoj.com/volume_showproblem.php?problem=1282 #include <cstdio> #include <cstdlib> #include <cstring> #include <cmath> #include <algorithm> #
阅读全文
摘要:http://acm.hdu.edu.cn/showproblem.php?pid=5950 一开始以为i^4不能矩阵快速幂,但是结论是可以得,那么要怎么递推呢? 矩阵快速幂的思路都是一样的,matrix_a * matrix_b ^ n 其中,想要维护什么,就在matrix_a写,比如现在是F[n
阅读全文
摘要:http://codeforces.com/gym/100633/problem/J 其实这个解法不难学的,不需要太多的数学。但是证明的话,我可能给不了严格的证明。可以看看这篇文章 http://www.cnblogs.com/jianglangcaijin/p/3446839.html 膜拜 #i
阅读全文
摘要:http://codeforces.com/gym/100633/problem/B B. Dispersed parentheses time limit per test 2 seconds memory limit per test 256 megabytes input standard i
阅读全文
摘要:https://icpcarchive.ecs.baylor.edu/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=2889 做这题的时候我第一感觉是直接dfs的dp,用dp[i][j]表示第一个数组处理到第i
阅读全文
摘要:http://kofw.uuu9.com/201004/303081_7.shtml
阅读全文
摘要:http://arc066.contest.atcoder.jp/tasks/arc066_c?lang=en 这类题目是我最怕的,没有什么算法,但是却很难想, 这题的题解是这样的,观察到,在+号里面添加括号是没用的, 那么看看减号,任意两个相邻减号, 比如1 - 20 + 8 - 13 - 5 +
阅读全文
摘要:https://icpcarchive.ecs.baylor.edu/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=2883 题目就是要求把多余的括号序列删了,一直wa 我的思路是暴力,暴力枚举每一对括号,在其
阅读全文
摘要:http://acm.uestc.edu.cn/#/problem/show/1544 考虑一下2、2、2这样的情况。答案应该是n / 2 如果只选一个的情况下,对答案的贡献是正的,但是这里有三个,也就是我们统计了3 * n / 2,统计多了。 那么对于任选两个数的情况,有三种,(2, 2) * 3
阅读全文
摘要:https://www.hackerrank.com/contests/hourrank-18/challenges/super-six-substrings 能被6整除的数有一个特点,就是能同时被3和被2整除 那么也就是能整除3的偶数。 设dp[i][j]表示以第i位结尾的所有子串中,%3的余数是
阅读全文
摘要:http://abc049.contest.atcoder.jp/tasks/arc065_b 一开始做这题的时候,就直接蒙逼了,n是2e5,如果真的要算出每一个节点u能否到达任意一个节点i,这不是floyd吗?复杂度要达到n^3,bitset优化也没用了。然后想了想,肯定不是的,如果有很快的方法能
阅读全文
摘要:http://abc048.contest.atcoder.jp/tasks/arc064_b?lang=en 在vj里面用list模拟水过去了,然后感觉vj不靠谱,上atcoder交,果然tle 我的思路是这样的,first那个是没有必胜策略的,赢就是赢,随便拿哪一个都是赢。 所以只需要找到有多少
阅读全文
摘要:https://vijos.org/p/1518 这题代码我基本是抄的,实在太难想了。但是也学到了一些东西。 比如:多叉树转二叉树存,这个细细一想,确实使得在dfs的时候,实现起来方便很多。 说一说具体 dfs的思路,思路和网上那个一模一样的,我刚学树形dp,可能上网看看总结下套路比较好。 设dfs
阅读全文
摘要:https://vijos.org/p/1688 看了下别人讨论的题解才想到的,不过方法和他的不同,感觉它的是错的。(感觉、感觉) 首先N只有1000, 如果能做到暴力枚举每一个节点,然后O(N)算出其贡献,那么也在允许的时间内。 假设我们现在对1这个节点进行计数,设dp[i]表示入侵i号节点和其所
阅读全文
摘要:http://acm.hdu.edu.cn/showproblem.php?pid=1423 4、LICS、O(lena * lenb) 设dp[i][j]表示a[]的前i项,以b[]的第j项结尾时,能匹配的最大值。 ①、不匹配a[i]这个数,则是dp[i][j] = dp[i – 1][j]; ②
阅读全文
摘要:http://poj.org/problem?id=1692 这题看完题后就觉得我肯定不会的了,但是题解却很好理解。- - ,做题阴影吗 所以我还是需要多思考。 题目是给定两个数组,要求找出最大匹配数量。 匹配规则是: a[i] ==b[j],而且需要产生交叉,而且没对数只能匹配一次。 一开始的时候
阅读全文
摘要:http://acm.hdu.edu.cn/showproblem.php?pid=2828 给定n个灯,m个开关,使得每栈灯亮,前提是控制这栈灯的开关的状态是其中一个。(题目应该都看得懂) 其实我想了挺久的,比赛的时候还想不出。但是直觉就告诉我是二分图匹配,虽然网上说什么精确覆盖。 不懂。 我的做
阅读全文
摘要:http://codeforces.com/problemset/problem/700/B 题意是,在一颗树中,有k个大学,要求两两匹配,他们之间的距离作为贡献,使得距离总和最大。 一开始的时候无从下手,一路在想某一个点应该和哪一个点去匹配。但是这样是错误的思路。 正解是观察边的贡献,如果某两个学
阅读全文
摘要:http://acm.hdu.edu.cn/showproblem.php?pid=5808 用bitset<120>dp,表示dp[0] = true,表示0出现过,dp[100] = true表示100这个数字出现过。 对于每一个新的数字,val,有转移方程, dp = dp | (dp <<
阅读全文
摘要:https://icpcarchive.ecs.baylor.edu/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=4922 题意是给定一颗森林,然后每次都可以删除一条边,或者询问某两个点是否连通。 如果顺着做
阅读全文
摘要:http://acm.hdu.edu.cn/showproblem.php?pid=5778 这题的意思就是找离x最近的一个数y,且y是一个完全平方数,还是所有质因子都只能出现两次的完全平方数 一开始的思路是直接枚举这个差值,然后去两边找,val - res和val + res找,然后超时了。 其实
阅读全文
摘要:http://poj.org/problem?id=1511 求解从1去其他顶点的最短距离之和。 加上其他顶点到1的最短距离之和。 边是单向的。 第一种很容易,直接一个最短路, 然后第二个,需要把边反向建一次,跑一个最短路就好。 ★、cin cout 超时 #include <cstdio> #in
阅读全文
摘要:http://acm.hdu.edu.cn/showproblem.php?pid=2243 这是一题AC自动机 + 矩阵快速幂的题目, 首先知道总答案应该是26^1 + 26^2 + 26^3 .... + 26^L,用等比数列的前n项和是无法做的,因为出现小数。 这个可以直接看到F[n] = 2
阅读全文
摘要:http://poj.org/problem?id=2778 首先将病毒串假如去AC自动机上。然后构造trie图后。 题目是要构造一个长度为len的,不包含那些病毒的串,的种类数。 转化题目,就是要求在root点上,走len步,能有多少种情况不走到病毒串上。 那么,对于每一个AC自动机上的节点,我们
阅读全文