01 2020 档案
-
P1387 最大正方形+P1736 创意吃鱼法(矩形上的dp+预处理)
摘要:最大正方形 1 //找出一个01矩阵中最大的全为一的正方形,并输出边长 2 #include <iostream> 3 #include<cstdio> 4 #include<cstdlib> 5 #include<cmath> 6 #include<cstring> 7 #include<algo 阅读全文
-
P2330 繁忙的城市(krusal最小生成树)
摘要:直接干 1 #include<iostream> 2 #include<algorithm> 3 #include<climits> 4 using namespace std; 5 struct edge 6 { 7 int from,to,weight; 8 }a[100010];//存边 9 阅读全文
-
P1546 最短网络(kruscal+并查集)
摘要:从邻接矩阵中提取出边,然后跑一边kruscal 1 #include<iostream> 2 #include<algorithm> 3 using namespace std; 4 struct node 5 { 6 int x,y,w; 7 }; 8 int cnt=0;//记录边数 9 nod 阅读全文
-
P1290 欧几里得的游戏(博弈论)
摘要:博弈论是真的难!? 给你两个数,每次只能从大的那个减去小的数的正整数倍,先得到零的人获胜 分析一下,(假设为x,y,且x>y),x=ky+z,若k>=2,那么我(是不是就可以为所欲为了)想一下减完或者,留一个给对手减是不是都行,然后我再往后分析下,我不就必胜了么? 所以遇到了这种情况或者我可以直接赢 阅读全文
-
P1288 取数游戏(博弈论)
摘要:转载自https://blog.csdn.net/Brian_Pan_/article/details/103860752 可以把环想象成两条路,如果没有天生的0,那两条路就是一样的(如果有的话,就两个方向跑一遍,奇数个非零alice必胜) 如果是偶数个的话,就没有必胜的策略了,只能根据bob所走的 阅读全文
-
P1341 无序字母对(欧拉回路+并查集)
摘要:1 //并查集判联通,dfs求解欧拉回路 2 #include<iostream> 3 using namespace std; 4 const int N=150; 5 int mp[N][N];//邻接矩阵存图 6 int d[N];//点的度数 7 char res[N*N];//大于C(52 阅读全文
-
P1330 封锁阳光大学(搜索+图的链式向前星存储)
摘要:给你一幅图,问你最少占领几个点,能够封锁阳光大学,但是不能占领一条边的两个点 就是每条边有且只有一个点能被占领,这么一来,每个连通分量只可能有两个方案(占领变不占领),所以直接搜,加上少的就好了 1 #include<iostream> 2 using namespace std; 3 const 阅读全文
-
P3375 KMP(字符串)
摘要:1 #include<iostream> 2 using namespace std; 3 const int N=1000000+100; 4 int f[N]; 5 int main(void) 6 { 7 string s1,s2; 8 cin>>s1>>s2; 9 f[0]=-1;//f[0 阅读全文
-
P1306斐波那契公约数(数论)待弄懂
摘要:结论gcd(f(n),f(m))=f(gcd(n,m)); 证明是真的难懂,等我数论上路不知能否看懂,立个flag 因为比较的大,所以要用到矩阵快速幂求斐波那契数列 1 #include<iostream> 2 #define ll long long 3 using namespace std; 阅读全文
-
P1199三国游戏(博弈论)
摘要:一堆武将,两两之间有个默契值,你先选然后机器选和你匹配的默契值最大的武将,意思就是不让你选最大的,这个时候一顿分析,(你拿了默契值最大的一个,另一个肯定被机器拿了,所以谁都拿不到最大的,机器拿完又是你选的了,这时你就可以选和你手上的这个匹配的默契值最大的),所以人是必胜的,最大的肯定是第二大的之中最 阅读全文
-
平方求和
摘要:Σn^2=1^2+2^2+3^2+.....+n^2 从立方差(不能用和,因为n^3这个数列我们没法求)公式入手 n^3-(n-1)^3=1(n^2+n(n-1)+(n-1)^2) =2*n^2+(n-1)^2-n 所以 2^3-1^3=2*2^2+1^2-2 3^3-2^3=2*3^2+2^2-3 阅读全文
-
完全立方公式
摘要:a^3-b^3=(a-b)(a^2+ab+b^2) a^3+b^3=(a+b)(a^2-ab+b^2) 困惑良久 a^3-b^3=a^3-b^3+a*a*b-a*a*b =a*a(a-b)+b(a^2-b^2) =a*a(a-b)+b(a+b)(a-b) =(a-b)(a^2+b(a+b)) =(a 阅读全文
-
P1414 又是毕业季(数论)
摘要:1 #include<cstdio> 2 #include<iostream> 3 #include<algorithm> 4 using namespace std; 5 const int N=1e6+10; 6 int c[N]; 7 int main() 8 { 9 int n; 10 ci 阅读全文
-
P1514 引水入城(搜索+线段完全覆盖)
摘要:1 //先做搜索,再做线段覆盖 2 //前提是从一个点出发的水能到达的旱地一定是连续的 3 //洛谷题解有证明 4 #include<iostream> 5 #include<cstring> 6 #include<algorithm> 7 #include<limits.h> 8 using na 阅读全文