
===ACM训练题库===
WildKid1024
骐骥一跃,不能十步。驽马十驾,功在不舍!
展开
-
2013_nanjing_onsite
4802 GPA 签到题目。4803 Poor Warehouse Keeper 优先考虑增长较快的上键,贪心即可。 4804 Campus Design 插头dp,加一维表示1*1的个数。 4805 Shoot 4806 Circular Lamps 4807 Lunch Time 48原创 2016-11-01 22:09:40 · 345 阅读 · 0 评论 -
2014_hangzhou_onsite
4770 Lights Against Dudely 状态压缩+枚举 4771 Stealing Harry Potter's Precious签到,压缩后直接BFS4772 Zhuge Liang's Password 签到题目,模拟矩阵旋转即可 4773 Problem of Apollonius 4774 Random Numb原创 2016-10-21 21:43:23 · 316 阅读 · 0 评论 -
Codeforce_732
A Buy a Shovel水题,问买鞋子的个数,直接暴力。#include <bits/stdc++.h>using namespace std;int main(){ int k,r,ans=0; scanf("%d%d",&k,&r); for (int i=1;i<10000;i++){ if (i*k%10==0||i*k%10==r){原创 2016-10-22 11:33:51 · 687 阅读 · 0 评论 -
2014_shanghai_visit
5090 Game with Pearls 签到题目,直接模拟即可。 5091 Beam Cannon 矩形覆盖的最大点数,离散化+扫描线+线段树。5092 Seam Carving 记录路径的DAG 5093 Battle ships行列建边,二分图匹配 5094 Maze 状压钥匙的个数,然后跑BFS原创 2016-10-11 15:27:07 · 660 阅读 · 0 评论 -
2014_guangzhou_onsite
5127 Dogs' Candies 链表,暴力5128 The E-pang Palace计算几何水题,求不相交两个矩形的最大面积 5129 Yong Zheng's Death 5130 Signal Interference计算圆与多边形的交,计算几何模板题目 5131 Song Jiang's rank list签到原创 2016-10-09 16:31:30 · 502 阅读 · 0 评论 -
2014_beijing_onsite
5112 A Curious Matt 签到,排序题目5113 Black And White 5*5的方格,dfs+剪枝 5114 Collision 线性方程求解 扩展欧几里得 5115 Dire Wolf 简单的区间DP问题。5116 Everlasting L 5117 Fluorescent原创 2016-10-09 15:43:23 · 329 阅读 · 0 评论 -
2014_anshan_onsite
5070 Twelve Months 5071 Chat 比较长的模拟5072 Coprime 容斥 同色三角形建模后,转化为互质个数问题5073 Galaxy 数学题,公式递推和化简5074 Hatsune Miku dp,分类讨论和递推5075 Random Inversion Machine原创 2016-10-09 10:54:11 · 328 阅读 · 0 评论 -
UVA 12298——Super Poker II
题意:给定一些扑克牌,问这些扑克牌选四色能组成n的方案数,其中遗失了c张牌,这c张不能用,问n从a到b的方案数。思路:分析每一种花色,那么每种花色组成的方案数即为x^1+x^2+x^3+x^5(改花色的牌只有1,2,3,5这四张的时候),那么对比于其他的花色,也是一样,四个花色的方案数相乘,即为所得值,那么很容易来使用FFT,注意可能会超精度,复数要用long double。code:#includ原创 2016-08-11 16:45:30 · 845 阅读 · 0 评论 -
hihoCoder 1227 & 2015 北京网络赛 A题
题意:给定m个点,然后从这m个点里找到一个点作为圆心,求一个最小的半径使得圆内刚好有n个点,没有压线的点。思路:预处理一下各点间的距离,暴力枚举圆心,然后找到排序后的第n个判断即可。坑点:mcode:#include <iostream>#include <cstdio>#include <algorithm>#include <vector>#include <cmath>using n原创 2016-08-23 13:06:26 · 456 阅读 · 0 评论 -
HDU 5730——Shell Necklace
题意:一段长为i的项链有a[i]中装饰方法,问长度为n的项链有多少种装饰方式。思路:容易推出,dp[i]=∑dp[j]*a[i-j],(1<=j<=i-1)那么这样就刚好符合卷积的运算,这样就可以愉快地使用fft了,不过数量级在1e5,所以应该采用分治来处理,算法复杂度nlognlogn。code:#include <iostream>#include <cstdio>#include <cst原创 2016-08-10 21:14:25 · 1172 阅读 · 0 评论 -
HDU 4609——3-idiots
题意:给定n个数,随机从这n个数中取3个数,问能组成三角形的概率是多少?思路:首先把统计这n个数出现的个数,那么会得到一个向量,这个向量的自我的乘积就是a[i]+a[j]的可能的方案数,这样,我么就很方便求出了两条边的和的方案数。但是在加的过程中,我么多加了a[i]+a[i]的情况,也就是自己跟自己相加的情况,所以我们要减去这一段。而且,在加的过程a[i]+a[j]和a[j]+a[i]是同一种情况,原创 2016-08-09 16:33:39 · 314 阅读 · 0 评论 -
HDU 1402——A * B Problem Plus
题意:给定a,b,求a*b。思路:a,b的长度都为50000,直接模拟计算n*m肯定超时,可以用快速傅里叶变化计算,然后再把相应的系数化简出来。code:#include <iostream>#include <cstdio>#include <cstring>#include <cmath>using namespace std;const double PI=acos(-1.0);st原创 2016-08-09 15:20:07 · 948 阅读 · 0 评论 -
BestCoder Round #86 1003 &HDU 5806——NanoApe Loves Sequence Ⅱ
题意:给定一个序列,问在这个序列里有多少区间第k的的数>=m思路:在比赛的时候是多想了,开始像区间第k大的问题,赛后想想实在是偏了。正确的解法是枚举起点然后用尺取法维护一段区间,直到找到k个数>=m的最短终点r,ans便是后边这一小段即n-r+1。code:#include <iostream>#include <cstdio>#include <cmath>#include <algorit原创 2016-08-07 20:54:27 · 315 阅读 · 3 评论 -
BestCoder Round #86 1002 &HDU 5805 ——NanoApe Loves Sequence
题意给定一个数列,随机从该数列里删除一个数,求该数列的的相邻之间的绝对值的最大值的和。思路两个数列来分别维护i位前面的相邻的绝对值的最大以及i后面的最大,枚举每一个可能删除的数,然后分别从左右和要删除的这个空档里娶一个最大的值。code:#include <iostream>#include <cstdio>#include <cmath>#include <algorithm>#inclu原创 2016-08-07 20:36:06 · 362 阅读 · 3 评论 -
hdu 5783——Divide the Sequence
题意及思路:求一个序列的分段个数,使得每一段的前缀和为0,如果正向思维,那么解法是从前往后遍历,每遇到一个负数就向前遍历直到>=0(这样贪心保证了序列尽可能多),但是这样最坏的情况是n^2的,所以要逆过来来考虑,每遇到负数就向前加到>=0即可,然后边统计答案,在n的算法里计算出。(注意:前缀和可能超int,用long long 保存)code:#include <bits/stdc++.h>usi原创 2016-08-07 20:09:53 · 330 阅读 · 4 评论 -
2016_shengyang_onsite
5948 Thickest Burger 签到,a+b+max(a,b) 5949 Relative atomic mass 签到,数组+统计一下 5950 Recursive sequence 矩阵快速幂,推出(n+1)^4与n^4的关系,7*7矩阵 5951 Winning an Auction 5952 Count原创 2016-11-02 21:42:44 · 399 阅读 · 0 评论 -
HDU 5950——Recursive sequence
Recursive sequence题意:给定起始的两个数a,b,求第n个数%mod思路: 第一眼看出来是矩阵快速幂,不过当时没推出来(其实推了一半把自己给否定了) 正解是,根据二项式定理,对于f(n)=f(n-1)+2f(n-2)+n^4可以转换为 f(n)=f(n-1)+2f(n-2)+c(4,0)(n-1)^4+c(4,1)(n-1)^3+c(4,2)(n-1)^2+c(4,3)(n-原创 2016-11-02 22:04:52 · 506 阅读 · 0 评论 -
hdu 5299——Circles Game
题意:给定n个嵌套的圆,每次可以删除圆以及该圆包含的所有圆,不能删除者输。思路:把每个圆看成一个点,把圆的包含关系看成一条单向边,那么就化成了一棵树。 然后就是裸的树上删边游戏模型了。 对于树上删边游戏: 1. 叶子节点的sg为0 2. 中间节点的sg为所有儿子节点的sg+1的异或和实际上该题目为树上删边游戏的变形。#include <bits/stdc++.h>using namespa原创 2016-11-10 20:36:16 · 381 阅读 · 0 评论 -
博弈论探讨及题目总结
转载自爱神博客:http://blog.youkuaiyun.com/acm_cxlove/article/details/7854526首先当然要献上一些非常好的学习资料: 基础博弈的小结:http://blog.youkuaiyun.com/acm_cxlove/article/details/7854530 经典翻硬币游戏小结:http://blog.youkuaiyun.com/acm_cxlove/article/det转载 2016-11-10 17:55:27 · 1707 阅读 · 0 评论 -
hdu 3590——PP and QQ
题意:有多颗树,然后树上删边游戏,最后一个删的人输。思路:其实就是树上删边游戏和anti-sg结合嘛。 对于树上删边: 1. 叶子节点的sg为0 2. 中间节点的sg为所有儿子节点的sg+1的异或和 对于anti-sg:先手必胜态当且仅当 1. sg异或值不为0且某个单一游戏的sg>1 2. sg异或为0且不存在sg>1的单一游戏 组合起来就好了。#include <bits/stdc原创 2016-11-10 17:06:43 · 614 阅读 · 0 评论 -
hdu 3094——A tree game
题意:一颗树,然后两个操作,一是删除一条边,二是移除不与根相连的部分。思路:树上博弈的基础题目。code:#include <bits/stdc++.h>using namespace std;const int N=1e5+5;std::vector<int> v[N];int dfs(int u,int p){ int ans=0; for (int i=0;i<v[u].原创 2016-11-10 16:43:06 · 509 阅读 · 0 评论 -
poj 3710——Christmas Game
题意:给定多个无向有环图,两个人在树上博弈,问博弈结果。思路:如果没有环,则是一个标准的树上博弈,那么满足 1. 叶子节点的sg为0 2. 中间节点的sg为所有儿子节点的sg+1的异或和存在环的话,可以缩点,偶数是0,奇数为1,具体证明看《组合游戏略述——浅谈SG游戏的若干拓展及变形》#include <cstdio>#include <iostream>#include <cstring>原创 2016-11-10 16:15:16 · 460 阅读 · 0 评论 -
2013_changchun_online
4759 Poker Shuffle 二进制规律+枚举 4760 Good Firewall 稍加变化tire树 4761 Sky 4762 Cut the Cake 概率题目,yy,公式。 4763 Theme Section 简单kmp 4764 Stone原创 2016-10-19 18:19:57 · 282 阅读 · 0 评论 -
2013_nanjing_online
4748 Area 4749 Parade Show 贪心+模式匹配/rk-hash 4750 Count The Pairs 最小瓶颈生成树,统计瓶颈>=c的个数。 4751 Divide Groups BFS/DFS搜索/划分成二分图 4752 Polygon 简单计算几何,线和多边形的交+辛普森积分 47原创 2016-10-17 21:12:33 · 281 阅读 · 0 评论 -
2016_icpc_dalian_onsite
5971 Wrestling Match 把开始的边固定,然后分别枚举,dfs染色即可。 5972 Regular Number 5973 Game of Taking Stones 威佐夫博奕,用java写大数即可。 5974 A Simple Math Problem可以把gcd(x,y)当成常数拆出来,然后解1元二次方程原创 2016-11-06 21:34:47 · 495 阅读 · 0 评论 -
2013_hangzhou_online
4738 Caocao's Bridges 求无向图的桥中最小的那个,tarjan 4739 Zhuge Liang's Mines 状态压缩+暴力 4740 The Donkey of Gui Zhou求两个点在图上的相遇点,模拟+dfs 4741 Save Labman No.004 计算几何,平面上的两条直线的最近距离和焦点原创 2016-10-15 21:00:48 · 289 阅读 · 0 评论 -
2013_changsha_onsite
4791 Alice's Print Service 水,把价格处理出来然后二分。 4792 Bob's new toy 4793 Collision 带入两个方程,解一下就行了。 4794 Arnold 稍微转化一下,变成斐波那契%n的循环节, 4795 Easy Problem Once More 4796原创 2016-10-25 19:26:41 · 281 阅读 · 0 评论 -
2013_chengdu_onsite
4781 Assignment For Princess 构造题目,可以先构造前n条边,然后对于剩下的m-n条边,一直构造搜索w%3==0。 4782 Beautiful Soup 直接模拟即可,不过要注意题面。 4783 Clumsy Algorithm 4784 Dinner Coming Soon 因为时间是递增的,所以可以用原创 2016-10-24 22:41:04 · 350 阅读 · 0 评论 -
2013_chengdu_online
4728 A Game in the Hospital 4729 An Easy Problem for Elfness 4730 We Love MOE Girls 签到题目 4731 Minimum palindrome 规律+构造 4732 Round Table 4733 G(x)原创 2016-10-13 21:40:34 · 256 阅读 · 0 评论 -
2013_warmup
感觉题目质量很差的一套,可能是不正式的原因。4706 Children's Day 签到题。 4707 Pet 签到题目,BFS或者DFS; 4708 Rotation Lock Puzzle 分析模拟题 4709 Herding 计算几何水题。 4710 Balls Rearrangem原创 2016-10-12 21:41:49 · 255 阅读 · 0 评论 -
2013_chengdu_visit
4716 A Computer Graphics Problem 签到题目,模拟。4717 The Moving Points 求n个点的最大距离最小值,三分时间即可 4718 The LCIS on the Tree LCT动态树 4719 Oh My Holy FFF 4720 Naive and S原创 2016-10-12 21:40:37 · 390 阅读 · 0 评论 -
hdu 5802——Windows 10
题意:给定两个音量,需要从l调到r,每次只能向上一下或者向下(1,2,4,2^n)下(连续向下的情况下),每次可以停歇或向上来打断向下的连续性,最少需要多少步?思路:当l小于r时显然答案是r-l,当l>r时那么不停地下降到r附近,此时只需要在r的上方和下方挑选最少的步数即可。注意向上也可以打断向下的连续性。code:#include <iostream>#include <cstdio>#inc原创 2016-08-06 12:19:06 · 429 阅读 · 0 评论 -
hdu5446——Unknown Treasure
题意:给定n和m,求c(n,m)%(∏ p)的值,相当于lucas定理的一个推广,在p不是素数的情况下的一个解决方法。思路: 首先对于c(n,m)%p[i]来讲,是一个lucas的裸题,那么对于c(n,m)%(∏ p)划分成lucas子问题求解后就变成了M%p[i]==a[i]的问题,这个问题就是裸的中国剩余定理了。code: #include <iostream> #include原创 2016-08-06 10:34:08 · 394 阅读 · 0 评论 -
CodeForce 168 C——Wizards and Trolleybuses
题意:给定n个火车,加速度,和铁轨长度,然后是每个火车的最大速度和开始出发的时间,问每辆火车到达终点的时刻。思路:暴力。考虑路上的状态可能不太容易思考,那就直接考虑起点和终点,对于一辆车到达的时间不超过前一辆车。即max(原本时间,前一辆的时间)。注意加速不到最大速度就到终点的情况。code:#include using namespace std;const in原创 2016-03-17 22:09:32 · 783 阅读 · 0 评论 -
CodeForce 180 C ——Letter
题意:给定一定长度的字符串,要求规则必须是所有大写字母必须在小写字母的前面,也就是所谓的11111000模式。思路:暴力,用O(n)的算法处理一下字符串,得到每个字符位前面有多少位小写以及后面有多少大写。然后遍历枚举即可。注意全是大/小写的情况。code:#include using namespace std;const int N=1e5+5;char s[原创 2016-03-17 22:02:30 · 825 阅读 · 0 评论 -
UVA 11136——Hoax or what
题意:超市搞促销,每天都从箱子里拿出最大和最小的差作为促销金额,给出n天的促销情况,问最后总的促销金额。思路:set构造,当有小票的时候放入set,每天结束的时候取出头和尾即可。code:#include using namespace std;typedef long long ll;const int N=1e5+5;ll ans;multisets;原创 2016-03-21 16:56:24 · 558 阅读 · 0 评论 -
UVA 11988——Broken Keyboard (a.k.a. Beiju Text)
题意:给定一个字符串,然后【会将光标跳转到头,】会将光标调到尾,问最后正确的输入。思路:直接用list来模拟即可,【的时候就在头插,】就在尾插,也可根据递归顺序解。code:#include using namespace std;char s[100001];void dfs(int lt,int rt){ int st=rt; while原创 2016-03-21 16:49:41 · 434 阅读 · 0 评论 -
UVA 1329——Corporative Network
题意:有n个节点,然后执行I u,v(把u的父节点设为v)和E u(询问u到根节点的距离)。思路:并查集。加了信息的并查集,在路径压缩的同时维护距离d[i];code:#include using namespace std;const int N=2e4+5;int fa[N],d[N];int getfa(int x){ if (x!=fa原创 2016-03-21 16:44:15 · 420 阅读 · 0 评论 -
UVA 1160——X-Plosives
题意:给定一些化合物(含有两个元素),当满足k个化合物且有k个元素的时候会发生爆炸,问多少个化合物是不能装车的。思路:并查集的简单应用。实际上满足条件的时候是一个环,因此用并查集简单判环即可。code:原创 2016-03-21 16:02:18 · 815 阅读 · 0 评论 -
UVA 11991——Easy Problem from Rujia Liu?
题意:给定一个数组,然后有若干组询问,每次询问求第k个v出现的位置。思路:用vector构造模拟,吧相同的数的位置放在同一个vector里,对于每次查询输出mp[v][x-1];code:#include using namespace std;map >mp;int main(){ int n,m,k,v; while (~scanf("%d%d",&原创 2016-03-21 09:35:45 · 445 阅读 · 0 评论