
2016暑期训练题
文章平均质量分 72
Akahieveman
这个作者很懒,什么都没留下…
展开
-
2016 Personal Training #2 Div.2 SPOJ AMR11A
题意:给定一个n行m列的数字矩阵,只能向下向右走,每走一步会获得该位置代表的数的能量,但是能量不能等于或者少于所给的所有数字的最小值,由于(1,1)和(n,m)的值一定保证为0,所以条件就直接变为能量不能少于等于0,求开始需要多少能量才能满足条件。思路:简单的dp,需要注意的就是边界处理,从(n,m)开始遍历到(1,1)。代码如下:#includeusing namespace st原创 2016-07-23 23:35:07 · 432 阅读 · 0 评论 -
2016 Personal Training #4 Div.2 A B C G H
A URAL 2091题意:有四个类别1.A和B都包含,2.只包含A不包含B,3.只包含B不包含A,4.A和B都不包含,A,B是课程,然后n行m列数字只包含1和0,1表示包含0表示不包含,求这n行这四类那种情况最多,并输出哪两种课程应该被选择,选择条件是A,B满足在n行中这四种都出现。思路:直接遍历查找所有情况然后记录最大值输出即可。代码如下:#includeusing name原创 2016-08-08 23:06:10 · 972 阅读 · 0 评论 -
2016 Personal Training #11 Div.2 B G J
UVALive 5963题意:给你n个数,如果这n个数满足:例如n=4第一个数前面有0个数后面有三个数那么这第一个位置数可以为0或者3,第二个位置可以为1或2等等。给出的n个数满足则输出yes否则no思路:将所有的数转换为前一半n/2的数,然后遍历数看看是否都出现两次,当然还有奇偶判断毕竟中间那个数可能只有一个。代码如下:#includeusing namespace std;原创 2016-08-08 10:51:49 · 532 阅读 · 0 评论 -
2016 Personal Training #1 Div.2 D - 1D Cafeteria (B) Gym 100989D
题意:给你N个数编号从1到N每个数代表座位个数,然后Q行每行in num的就是进来num个人你需要做的就是将这num个人放到编号最小但座位数大于等于num的地方,out num就是编号为num的地方人离开,那么你就可以在这坐人了,然后每个in输入输出你所选的地方,如果没有地方可选就输出-1;这题用set做,需要知道set >用法#include using namespace std;原创 2016-07-21 17:40:53 · 860 阅读 · 0 评论 -
Codeforce 2016 Al-Baath University Training Camp Contest-1
F. Good Wordstime limit per test2 secondsmemory limit per test64 megabytesinputstandard inputoutputstandard outputZaid has two words, a of length between 4 and原创 2016-07-21 08:18:05 · 506 阅读 · 0 评论 -
2016 Personal Training #9 Div.2
啊~,对于这套题我最想说的是我H居然没过,看来当时真的是比较累(虽然没做多长时间就去吃饭了-_-!!),赛后睡一觉再看题不到20分钟AC了,脑窝疼T_T。晚上补题不顺,B是矩阵快速幂明天在更新。 Gym 100735D题意:给你n个木棍问最多能组成多少个三角形,木棍最多只能组一个三角形。思路:排序,从小到大遍历三条边三个循环,注意判断木棍使用就行。代码如下:#include原创 2016-08-01 19:45:22 · 465 阅读 · 0 评论 -
2016 Personal Training #8 Div.2 A B H
A - Combination Lock题意:给你四个数,n,T1,T2,T3,锁是从0~n-1,当你选择一个起始点时如果是T1那么只要顺时针转两圈即可,如果不是T1那么顺时针转两圈后再顺时针转到T1,接着第二步逆时针转一圈,然后再逆时针转到T2,最后顺时针转到T3,求当你选择0~n-1所有点为起始点的平均转动步数,一圈是n步。思路:明白题意就相当简单了,当然注意T2显示的位置可能会在T1原创 2016-08-01 07:47:55 · 567 阅读 · 0 评论 -
2016 Personal Training #6 Div.2 G
题意:让我们模拟医院救治病人的过程,每次会有不同病重程度的病人来医院,每次医院会选择程度最高的来救治,当输入第一个字符为P 后面跟着数字表示t0,s(t0),r;当字符为A时表示医院要选择一名病人救治后面跟着的数字表示时间t,病重随时间变化而变化满足方程s(t)=s(t0)+r*(t-t0)。思路:想解决得先学会优先队列的使用,优先队列存储优先级高的在头低的在尾,注意可能会有r相同的病人,所以原创 2016-07-27 23:44:50 · 603 阅读 · 0 评论 -
SPOJ AMR11J
题意:输入数字t表示t组数据,然后每组输入n和m表示n行字符串长度为m,字符由小写英文字符和'.'和'#'构成,每个英文字符代表一个初始点会向周围即上下左右扩散,每到一点如果是'.'则将这点改为该英文字符如果是#则不变,当两种英文字符同时到一点时,则将该位置字符变为'*',最后输出变动后的n行字符串。思路:当看到这题时不妨模拟下,我们会发觉我们总是保持一个循环即从一个字符开始然后让所有这种字符原创 2016-07-25 22:47:35 · 454 阅读 · 0 评论 -
2016 Team Training #21 Gym 100952 A D E F J
A 水题题意:两个人的时间分别是时,分,秒输入,也就是让我们输出谁时间最早呗。思路:没有思路直接上,看手速了(我敲代码速度慢-_-!!!)。代码如下:#includeusing namespace std;typedef long long LL;#define INF 0x3f3f3f3fint main(){ int t,h1,m1,s1,h2,m2,s2;原创 2016-08-10 23:13:45 · 678 阅读 · 0 评论