- 博客(47)
- 收藏
- 关注
转载 欧拉函数入门
欧拉函数:小于x的整数中与x互质的数的个数,一般用φ(x)表示,φ(1)=1计算公式:φ(x)=x*(1-1/p1)(1-1/p2)...(1-1/pn),其中x的所有素因子数分别为p1,p2,p3,...,pn.常用性质:1.对于素数p,φ(p) = p-1,φ(pk) = pk-pk-1 2.当gcd(n,m) = 1时,φ(n*m) =φ(n) *φ(m)...
2019-09-27 20:32:00
488
转载 Good Morning
题目链接:Good Morning题目大意:按键盘上的数字,只能在此位置的基础上往右往下按,要求输出与所给值差的绝对值最小的数AC代码如下: 1 #include <iostream> 2 #include <cstdio> 3 #include <cstring> 4 #include <string> 5...
2019-09-24 19:52:00
318
转载 求逆元算法
费马小定理:若p是素数,a是正整数且不能被p整除,则ap-1 == 1(mod p)费马小定理的拓展:ap == a(mod p)欧拉定理:对任意互素的a和n. 设Φ(n) 为小于n且与n互素的正整数的个数,有aΦ(n) == 1(mod n)欧拉定理的拓展:aΦ(n)+1 == a(mod n)求乘法逆元的作用:除以一个数 再取模时,可以将这个数乘以这个数的逆元...
2019-09-14 22:31:00
816
转载 Manacher算法
1 /* */ 2 # include <bits/stdc++.h> 3 using namespace std; 4 # define MAXN 110000 5 int dp[MAXN*2+5]; 6 char str[MAXN*2+5]; 7 int manacher(char *s) 8 { 9 int N=0;...
2019-09-10 20:54:00
133
转载 Almost Sorted Array
题目链接:Almost Sorted Array不用任何算法的做法:样例:1 3 6 5 7 8 9 9 8 7 5 6 3 2 2 7 1 1AC代码: 1 #include <iostream> 2 #include <cstdio> 3 #include <cst...
2019-09-10 20:29:00
209
转载 最长不递减子序列
定义:在最长上升序列的基础上,允许相同的若干元素出现在子序列中DP做法: 1 //DP 2 int LDNS(int a[], int n) 3 { 4 int DP[n]; 5 int Cnt=-1; 6 memset(DP, 0, sizeof(DP)); 7 for(int i=0; i<n; i++ ...
2019-09-10 20:14:00
172
转载 (LIS)最长上升序列(DP+二分优化)
求一个数列的最长上升序列 动态规划法:O(n^2) 1 //DP 2 int LIS(int a[], int n) 3 { 4 int DP[n]; 5 int Cnt=-1; 6 memset(DP, 0, sizeof(DP)); 7 for(int i=0; i<n; i++ ) 8...
2019-09-10 19:56:00
254
转载 I Count Two Three(打表+排序+二分查找)
I Count Two Three二分查找用lower_bound这道题用cin,cout会超时。。。AC代码; 1 /* */ 2 # include <iostream> 3 # include <cstring> 4 # include <string> 5 # include <cstdio>...
2019-09-05 00:12:00
517
转载 AC自动机入门经典题目(两种表达方式)
Keywords Search指针方式: 1 /* Keywords Search */ 2 # include <iostream> 3 # include <stdio.h> 4 # include <string.h> 5 # include <string> 6 # include &...
2019-09-03 20:07:00
138
转载 Balanced Ternary String(贪心+思维)
题目链接:Balanced Ternary String题目大意:给一个字符串,这个字符串只由0,1,2构成,然后让替换字符,使得在替换字符次数最少的前提下,使新获得的字符串中0,1,2 这三个字符的数目相同,并且新获得的字符串的字典序要尽可能的小;直接数组做法:暴力遍历 1 /* */ 2 # include <bits/stdc++.h&...
2019-09-02 17:18:00
228
转载 Doors Breaking and Repairing
题目链接:Doors Breaking and Repairing题目大意:有n个门,先手攻击力为x(摧毁),后手恢复力为y(恢复),输入每个门的初始“生命值”,当把门的生命值攻为0时,就无法恢复了。问:最多可以把几个门的生命值攻为0。思路:(1)当 x>y 的时候肯定所有的门的生命值都能降为0; (2)当 x<=y 的时候,先手的最优策略就是每次去攻击那些当...
2019-08-31 22:07:00
228
转载 Coffee Break
题目链接:Coffee Break Gym-101911A题目大意:有一位员工想要利用喝咖啡来休息,他给了一个数组表示他想要喝咖啡的时间点(假设他喝咖啡用时1分钟),老板规定每次喝咖啡的时间间隔必须要大于d。问:他将给定数组的时间点都经 历一遍最少(贪心所在)需要多长时间,并输出每个时间点是在第几天经历的;解题思路:贪心地选取喝咖啡的时间,我们尽量选取喝咖啡时间靠...
2019-08-22 10:03:00
178
转载 Glider(前缀和+二分)
题目链接:Glider Gym-101911B解题分析:下落的高度一定,是h。在没有气流的地方每秒下落1;所以可以转化为经过无气流地带的时间总长为h。 那么很显然从一个有气流地带的开始,选择下落,那么问题来了,一个一个去试然后一个一个计算他的路径去维护一个最大值吗?未免太过麻烦,所给数据有 那么大。解题关键:二分+前缀和二分查找用:lower_boun...
2019-08-22 09:23:00
234
转载 Approximate Search
题目链接:Gym-101492H动态规划,应该是比较基础的,可是自己就是不会QAQ.... 1 /* 把使用机会当成“花费” */ 2 # include <iostream> 3 # include <cstdio> 4 # include <cstring> 5 # include <string> 6 ...
2019-08-21 21:18:00
240
转载 Programming a robot
题目链接:Gym - 101492H自己的纯暴力做法: 1 /* */ 2 # include <iostream> 3 # include <cstdio> 4 # include <cstring> 5 # include <string> 6 # include <cstd...
2019-08-21 19:38:00
157
转载 Brexit Gym - 101490C
题目链接:Brexitvector的使用(vector存边),巧用queue,相当于Bfs 1 /* */ 2 # include <iostream> 3 # include <cstdio> 4 # include <cstring> 5 # include <string> 6 # include &l...
2019-08-21 19:26:00
174
转载 Bacteria(优先队列)
题目链接:http://codeforces.com/gym/101911/problem/C问题简述:给定n个细胞以及每个细胞的大小,相同的细胞能进行融合,如果能融合到只剩1个细胞则输出需要额外增加多少细胞才能把全部融合到只剩一个细胞,如果不能则输出-1.问题分析:每融合一次都要排序,所以用优先队列。 1 /* */ 2 # include <iostream...
2019-08-18 17:02:00
204
转载 大数取余(大数模小数)
对于一些大数取余,可以利用模拟手算取余的方法进行计算。 e.g.有一个大数989565215785528545587(大数)对10003(小数)取余,需要将该大数从最左端开始对10003取余; start: 9%10003==9; (9*10+8)%10003==98; (98*10+9)%10003==989; ...
2019-08-16 23:40:00
1216
转载 数论之扩展欧几里德相关模板
拓展欧几里得公式:typedef long long LL;LL exgcd(LL a,LL b,LL &x,LL &y){ if(a==0&&b==0) return -1; if(b==0) { x=1;y=0; return a; } LL d=exgcd(b,a%b,y,x); y...
2019-08-14 21:26:00
141
转载 TEX Quotes
题目链接:https://cn.vjudge.net/problem/UVA-272AC代码: 1 /* */ 2 #include <iostream> 3 #include <stdio.h> 4 #include <string.h> 5 #include <cmath> 6 #include &l...
2019-08-11 16:55:00
141
转载 着色方案(动态规划+记忆化搜索)
题目链接:https://www.lydsy.com/JudgeOnline/problem.php?id=1079AC代码: 1 /* 2 直接状态压缩是显然是不可行的,我们考虑如果没有相邻颜色不相同的限制的话, 3 如果两种油漆能染的木块数目相同,我们就可以认为两种油漆无差别。 4 设dp[a1][a2][a3][a4][a5]为能...
2019-08-10 10:28:00
481
转载 Video Reviews
题目链接:http://codeforces.com/gym/101755/problem/K题目理解: 一家公司想让n个人给他们的产品评论,所以依次去找这n个人,第i个人会评论当且仅当已经有ai个人评论或他确实对这个产品感兴趣,但是这n个人都不对这个产品感兴趣,问这个公司至少要说服几个人对该 产品该兴趣才能至少收到m个人的评论。假如你要强迫人肯定要强迫最前边的,因为说...
2019-08-09 15:44:00
226
转载 Safe Path(bfs+一维数组存图)
题目链接:http://codeforces.com/gym/101755/problem/H题目分析:先bfs一遍怪兽可以到达的点,再bfs人可以走的地方看可不可以到达终点; 很显然读到 2<=n*m<=200000 时,就不可以用二维数组存图了,不过据说因为数据比较水,可以用vector存图;vector存图AC代码: 1 /* */...
2019-08-09 14:53:00
357
转载 一维树状数组入门
个人觉得非常棒的博客:https://www.cnblogs.com/xenny/p/9739600.html第一类:单点更新,区间查询 例题:http://acm.hdu.edu.cn/showproblem.php?pid=1166 AC代码: 1 /* */ 2 # include <iostream> 3 # includ...
2019-08-08 20:41:00
171
转载 Ancient Go(简单DFS)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5546AC代码: 1 #include<iostream> 2 #include<cstdio> 3 #include<cstring> 4 #include<algorithm> 5 #include&...
2019-08-08 18:43:00
173
转载 Sudoku(简单DFS)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5547数据比较少,直接暴力DFS,检验成立情况即可AC代码:但是不知道为什么用scanf,printf输入输出就WA了 1 /* */ 2 # include <iostream> 3 # include <stdio.h> 4 ...
2019-08-08 18:33:00
225
转载 Strategic game(树形DP入门)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1054题目大意:一棵树,要放置哨兵,要求最少放置多少哨兵能监视到所有的结点题目分析:放置哨兵无非两种情况,放或不放,我们可以用dp[i][1]来表示第i个结点放置哨兵,dp[i][0]来表示第i个结点不放置哨兵,我们可以从上往下,从左往右来遍历树,所以这就用到了树形DP的知识,我们...
2019-08-08 09:54:00
140
转载 Anniversary party(树形DP入门)
题目链接:https://cn.vjudge.net/contest/317407#problem/A题目理解:题意为有n个人要开一个PARTY,编号1到n,每个人都有一个欢乐值,并且每个人都有一个直接上司,为了让气氛更好,要求在这n个人中选一些人去参加PARTY,并且选出的这些人中任意两个人之间都没有直接上司或直接下属关系,求选出人的最大欢乐值。这n个人通过直接上司或直接下属关...
2019-08-08 09:14:00
225
转载 Neither shaken nor stirred(DFS理解+vector存图)
题目链接:http://acm.timus.ru/problem.aspx?space=1&num=2013题目理解:给定n个点的有向图:下面n行,第一个数字表示点权,后面一个数字m表示有m条边。起点是1.对于每个点,输出2个值表示前驱点权1和该点点权2。1、就是若有多条路径且全为“同一个值”输出“同一个值”,否则输出unknown; 若有一条路径若...
2019-08-07 22:30:00
410
转载 统计单词数
统计单词数https://www.luogu.org/problemnew/show/P1308大佬的题解粘来学习AC代码: 1 #include <cstring> 2 #include <cctype> 3 #include <cstdio> 4 5 void strlower (char *a) {...
2019-07-18 18:42:00
182
转载 洛谷---三连击
https://www.luogu.org/problemnew/show/P1008 1 #include <stdio.h> 2 int main() 3 { 4 int a,b,c; 5 for(a=123; a<=333; a++) 6 { 7 b=a*2; 8 ...
2019-07-16 17:16:00
153
转载 Educational Codeforces Round 68 (Rated for Div. 2)---B
http://codeforces.com/contest/1194/problem/B 1 /* */ 2 # include <bits/stdc++.h> 3 using namespace std; 4 5 int r[50005], c[50005]; 6 string s[50005]; 7 8 int main...
2019-07-16 10:55:00
172
转载 HDU-1201--18岁生日
http://acm.hdu.edu.cn/showproblem.php?pid=1201我还以为这是一道脑筋急转弯的题QAQ,AC代码如下: 1 #include <stdio.h> 2 int leapyear(int year) 3 { 4 if(year%4==0 && year%100!=0 || year%...
2019-06-24 20:47:00
199
转载 HDU-盐水的故事
http://acm.hdu.edu.cn/showproblem.php?pid=1408这是一道高精度问题:在自己错了数十遍之后找到了不少规律:首先是Output limit exceeded:之前一直不知道是什么意思,现在才知道是输入输出的精度有问题 1 /* */ 2 # include <bits/stdc++.h> 3 using ...
2019-06-24 20:32:00
221
转载 Flower(规律+逆向思维)
Flower:传送门:http://acm.hdu.edu.cn/showproblem.php?pid=6486题解:逆向思维+规律因为每次剪n-1,所以逆向就是控制n-1朵不变,每次增高1朵,直到所有等高,即所有的高度都等于最高的那一朵,记录增高的次数为sum,反过来就是最高的那个减少sum,如果减少sum后小于1则不成立,大于等于1,则需要减少sum次。s...
2019-05-20 16:54:00
445
转载 The puzzle
The puzzle:传送门:http://acm.hdu.edu.cn/showproblem.php?pid=6489找大佬讲了一下这道题,但还是不懂为什么要这样做,先记录一下以后再研究研究;解题思路:这道题是把序列换几次能到增序列,一上来pos数组记录一下每个数都在什么位置,然后就从1开始和第一个数进行匹配(数列是1-n的),如果不相等,那我们只要进行一次交换就可...
2019-05-20 15:24:00
199
转载 XOR Clique(按位异或)
XOR Clique(按位异或):传送门:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=4057准备:异或:参加运算的两个数据,按二进制位进行“异或”运算。 运算规则:0^0=0, 0^1=1, 1^0=1, 1^1=0; ...
2019-05-15 20:42:00
295
转载 Halting Problem
Halting Problem:传送门:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=4049总结一个小规律:题目中给的那个取mod的那个数N, 可能就是循环的边界;本题AC代码: 1 /* */ 2 # include <bits/stdc++.h> 3 4 u...
2019-05-15 10:09:00
104
转载 cometoj---contest#3 棋盘
棋盘:(状压dp)传送门:https://www.cometoj.com/contest/38/problem/B?problem_id=1535题目描述小猫有一个2×N的棋盘,每一个格子放着一个黑棋子或白棋子。小熊觉得小猫的棋盘不够好看,想要把棋盘上的一部分白棋子替换成黑棋子,使得所有黑棋子都能够在仅允许上下左右四个方向走,且仅经过黑棋子在的格子的情况下两两互相到达...
2019-05-13 21:14:00
192
转载 2019acm山东省赛C题
传送门:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=4115昨天赛场上只想到了一种情况:最远点一定是在最后一次循环中产生的,且一定是第一次循环中最远点对应的那个点,因此想到的只是求出第一次循环中的终点,找到它相对于第一次循环里最远点的相对位置,然后。。。。。WA了。后来,大佬的点拨才发现,脑子是个好东...
2019-05-13 16:35:00
246
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅