
CF
文章平均质量分 65
yuhong_liu
这个作者很懒,什么都没留下…
展开
-
I - Faulty Odometer
#include #include #include #include #include #include #include #include #include #include using namespace std;int main(){int tm[12];int n;while(scanf("%d",&n)!=EOF)原创 2015-07-22 08:56:33 · 580 阅读 · 0 评论 -
Problem M. Heaviside Functionz
题目意思很简单明了,直接做肯定tle注意到s的值只有正负1 因此可以把s=1的a全部放在一起 s=-1的全放在一起,假设个数分别是num1,num2从而对于每一个msum=0;{在s=1 中的a 二分找到一个m>=a此时sum+=(a的下标);在s=-1中的a 二分找到一个(-m) >=a此时sum+=(a的下标);}从而 成了O(m*num原创 2015-07-24 03:51:41 · 482 阅读 · 0 评论 -
F - Ilya Muromets-
一开始算法就错了错误地认为是 先找到一个max连续k区间 再找一个即可。。。。(这也太简单了吧)实际是 要找到两个连续k区间的和最大。。两者是不同的。。。。让我发现区别的样例是这个10 438 11 48 90 87 4 90 82 9 85答案应该是 除去38 和4 之外的数只和#include #include #include #include #inc原创 2015-07-25 21:14:16 · 604 阅读 · 0 评论 -
D - Data Center-2014-2015 ACM-ICPC, NEERC, Southern Subregional Contest
贪心先把高低电压各存在一个数组并排序题目思路很简单。 就是先 贪心得到 最少的机器数num然后分2种情况1:num然后 根据 if (当前cap之和是否>= m) 来贪心 ( 不断比较"已选"的最小cap的低电压机器 和较大cap的高电压机器) (都已排序)2: num>总低电压机器数量(a)此时 先假设全部低电压机器被选了,并且再选num-a步 较大cap原创 2015-07-24 23:50:27 · 987 阅读 · 0 评论 -
A Lot of Joy-Gym 100187B
还是too young简单的求 数学期望;#include #include #include #include #include #include #include #include #include #include using namespace std; int vis[28];char tm[200000+5]; int原创 2015-07-24 02:47:25 · 899 阅读 · 0 评论 -
Problem M. Variable Shadowing -字符串暴力处理
看到就烦啊 题目这么长参考别人的代码。。暴力过的 数据太小#include #include #include #include #include #include #include #include #include #include using namespace std;char tm[55][55];struct positio原创 2015-07-25 13:45:25 · 442 阅读 · 0 评论 -
B - Pasha Maximizes -水题-CodeForces 435B
贪心一下就好,#include #include #include #include #include #include #include #include #include #include using namespace std;char tm[100];struct node{ int x; int num; int value;}nm[原创 2015-08-05 01:34:22 · 388 阅读 · 0 评论 -
K - Perpetuum Mobile
题目读懂了+想到逆序对 就很容易了 不然还是挺麻烦的题中要产生K能量对应的隐含条件就是 有K对逆序对 (自己画图)#include #include #include #include #include #include #include #include #include #include using namespace std;int tm原创 2015-07-24 05:40:01 · 546 阅读 · 0 评论 -
F - Doomsday-贪心
最近的题都不算难,只是都是因为自己在 一边 判断 上 不够清晰,导致 要么 忽略了某种情况 ,要么分类方法不科学,使程序非常复杂。。。。以后一定要想清楚,把分支理好。。。没想清楚就下手。。最后改代码的过程真是太痛苦了#include #include #include #include #include #include #include using name原创 2015-07-27 15:32:54 · 564 阅读 · 0 评论 -
E - Two Labyrinths
一开始一直想着DFS出一个图的全部最短路径然后for一遍 看是否有任何一条路径在另一个图上是存在的 即 if(map2[i][j]=='.')最后超时无数次,估计是dfs这么大的图时间复杂度太高了最终是先对图1图2 各做一次 bfs 得到最短路径长度然后把图一图二重叠(经常碰到) 把新的图用bfs求出最短路径长度然后如果三个长度一样则 YES, 反之则NO;原创 2015-07-24 02:12:40 · 722 阅读 · 0 评论 -
A - Two Semiknights Meet
DescriptionA boy Petya loves chess very much. He even came up with a chess piece of his own, a semiknight. The semiknight can move in any of these four directions: 2 squares forward and 2 squares原创 2015-07-24 02:23:50 · 552 阅读 · 0 评论 -
A - Potion of Immortality
题意理解了就很好做了。当时理解错了。。。#include #include #include #include #include #include using namespace std;int main(){ int n, k; scanf("%d%d",&n,&k); if(n==1) { cout<<0<<endl;原创 2015-07-24 02:17:03 · 654 阅读 · 0 评论 -
H - 24 Game
Little X used to play a card game called "24 Game", but recently he has found it too easy. So he invented a new game.Initially you have a sequence of n integers: 1, 2, ..., n. In a single step, yo原创 2015-07-22 08:58:28 · 860 阅读 · 0 评论 -
H - Mysterious Photos
纯纯的一个相似三角形,有一个坑是,精度问题,用了sqrt就wa,所以此类问题,能不sqrt尽量就不 sqrt#include #include #include #include #include #include #include #include #include using namespace std;double tm[5][5];doub原创 2015-07-24 02:19:12 · 596 阅读 · 0 评论 -
G - Gargari and Bishops-贪心暴力
#include #include #include #include #include #include #include #include #include #include using namespace std;int n; __int64 tm[2005][2005];__int64 L[2005*2];//副对角线元素之和 __原创 2015-07-22 08:59:38 · 471 阅读 · 0 评论 -
D - Game with Pearls
#include #include #include #include #include #include #include #include #include #include using namespace std;int tm[505]; int tmp[505]; int vis[505];int main(){ int t,n,k,i; cin>>原创 2015-07-22 08:57:55 · 420 阅读 · 0 评论 -
G - The Child and Set-CodeForces 437B-水题
知道求lowbit的公式后,直接把所有lowbit排个序,从大到小选就好了#include #include #include #include #include #include #include #include #include #include using namespace std;struct node{ int lb; int num原创 2015-08-05 01:35:39 · 586 阅读 · 0 评论 -
CF#310-C-Case of Matryoshkas-模拟水题
公仔套公仔的游戏(只能小的套到大的里面)操作1 : 把公仔a从公仔b分离出来,条件是,b不能被别的公仔套着操作2: 把公仔a套进b里去,条件是,b里面没套东西,并且b没套在另一个公仔在里面显然按照条件,只有 以1开头的 连续 的链是能全部取出来的,剩下的所有的链都要拆成单个cun记录拆的次数single记录 可以作为独立单位的个数先找到 1开头的链, 然后原创 2015-09-28 14:03:47 · 590 阅读 · 0 评论 -
cf#317-B-Order Book-水题
cf#317-B-Order Book-水题给你 n个数据,和一个S一件物品 属性有D、P,V是数量格式:Di Pi Vi如果Di一样并且Pi一样,要把Vi合并 (v是数量)最后 输出前S个属性D为“sell”的物品(价格越小越前) 按照Pi降序输出 输出前S个属性D为“buy”的物品(价格越大越前) 按照Pi降序输出原创 2015-09-25 18:38:46 · 483 阅读 · 0 评论 -
cf#318-D - Bear and Blocks-双向dp
题目给你一个积木(n个数字、表示第i列的高度为h[i])(类似于俄罗斯方块)每次进行一次X操作,X操作计算把所有边缘的小正方形去掉(也就是把与空白处接触的格子都去掉)问你 给出一个图形 要做多少次操作才能把所有的格子去掉n最大10^5 h最大10^9一开始想直接模拟,每次贪心去掉每一列的能去掉的格子最糟糕的情况 是n*h 的一个矩形 n取10^5 h取10^9原创 2015-09-25 15:42:04 · 619 阅读 · 0 评论 -
cf#320 Div.2 Problem D "Or" Game
本题就是给你一堆数, 然后给你一个x^k 要把这个x^k乘到哪个数,能使得这一堆数的 or运算之和最大显然要让和最大 ,得让 被乘得到的数 最高位最大,所以全部数乘到一个数上但是并不是选最大的一个数,例如 2 2 2 4 5选四 是16|5 =21选五 是 20|4 =20其实我们可以证明 如果一堆数是 1 2 3 5 6 7 11 12 14原创 2015-09-18 08:32:36 · 554 阅读 · 0 评论 -
cf#320 Div.2 Problem C A Problem about Polyline
题目要求一个x使得 最后折线通过 点(a,b)显然 b>a时,无解,b==a时,解为b当a>b时,一定存在解;容易得知 如果(a,b)在上斜边上,那么该边与x轴交点为(a-b,0),称为点C如果(a,b)在下斜边上,那么该边与x轴交点为(a+b,0),称为点C 讨论a+b的情况先假设解为x 那么 令y=(a+b)/(2*x)必然是一个整数、、表示原创 2015-09-18 14:07:26 · 640 阅读 · 0 评论 -
CF#322-D. Three Logos-模拟水题
坑爹啊, 题目很简单要把三个矩形的logo塞进一个最小的正方形(是正方形)的木板里直接把三个矩形面积加起来,如果不是一个平方数,直接nox1 y1 表示矩形的长宽, 自己处理使得 y1>=x1接下来只有2种情况了! 一个是 三个矩形横着叠成三层 形如 “三” 条件是 y1==y2==y3==n 切 x1+x2+x3==n另一个是 一个矩形在上面,两个在下面原创 2015-09-28 21:47:18 · 392 阅读 · 0 评论 -
CF#310-A-Case of the Zeros and Ones-链表模拟
删除相邻的 01 直到无法继续删除,直接stl的list模拟一发就好了#include #include #include #include #include #include #include #include #include #include using namespace std;list sb;list ::iterator it,nx;int mai原创 2015-09-28 13:52:25 · 467 阅读 · 0 评论 -
CF#318-Bear and Elections-贪心暴力
给n个数,第一个数是自己的票数,其他是别人的票数,要求你去拉票(别人减少了多少票你就会加多多少票)、使得自己票数大于所有人对2到n的人排序,一直取最大的前k个求平均数,判断得到的值是否大于i-1个就可以了、O(N)复杂度 //处理一下后缀和,复杂度o(n)搞定了//贪心#include #include #include #include #include原创 2015-09-25 08:43:48 · 428 阅读 · 0 评论 -
Codeforces#326-A - Duff and Meat-贪心
给出n,表示要经过n个地点接下来n行,【ai,pi】 ai表示当天必须吃ai个食物,pi表示一单位食物要pi块钱直接贪心,用一个变量记录最便宜的价格,如果当前pi大于它,则之前用最便宜的价格买上当前pi的份,反之,用pi更新最便宜价格,并用新的价格购买食物;第一天无论如何也要买#include #include #include #include #include #in原创 2015-10-16 15:25:18 · 522 阅读 · 0 评论 -
cf#310-D. Case of Fugitive-贪心
给你n个岛屿的左右端点(l.r)(此题岛屿不是点,是一个区间)给你m个桥题目要求桥大于等于两个岛屿之间的 min距离,且小于等于其max距离,min=bridge(i+1).L-bridge(i).r。 max=bridge(i+1).r-bridge(i).l;思路: 先对桥排序再对岛屿排序,应该先对max距离从小到大排序,max相同则对min从小到大排序原创 2015-09-29 12:59:14 · 579 阅读 · 0 评论 -
CF#322-C-Developing Skills-模拟大水题
http://codeforces.com/contest/581/problem/C给你n个技能,和一个k n个数代表技能当前level (最高level是100)让你求the sum of the values of for all i from 1 to n. 因为是除十取整,所以我们只要尽可能加够整十,例如18和12对答案的贡献分别都是1,但原创 2015-09-28 21:55:11 · 1091 阅读 · 0 评论 -
CF#310-B - Case of Fake Numbers-模拟水题
就是模拟齿轮转动, 序号为奇数的齿轮顺时针转,为偶数则逆时针转k=第一个转到为0的次数所有轮子转k次,看是否构成0 1 2 3 4 ....n-1就可以了//也是醉了, 写了一个scanf(“%1d”)。。。wa了好几次#include #include #include #include #include #include #include #inclu原创 2015-09-28 13:55:56 · 431 阅读 · 0 评论 -
CF#318-C - Bear and Poker-大水题t
给出n个数,允许的操作是对这些数扩大为原来的2倍或3倍 ,次数不限乍一看以为是什么难题,直接求b个数求了一次gcd,然后每个数除去gcd。之后再让每个数一直除2 3,直到不能除,那么最后如果全部数都是1 那么答案 就是YES,否则,必然无法使得全部数最后一样,这样就ac了。。。。最后发现 连gcd都不用求,直接对每一个数不断除2和3,最后如果全部数相等 ,就是 yes,原创 2015-09-25 13:18:44 · 512 阅读 · 0 评论 -
CF#319-C. Vasya and Petya's Game-猜数-数论
给一个n,B同学从1-n里默默挑一个数X,A同学给出一个问题列表,问x能否整除y;如果可以回答yes 否则no这里要注意的是 A同学是一次性给所有的问题, 即给出所有的可能,而不是问问题的同时能根据B的回答决定一下一个要问的问题(即,没有交互性)那么便得把1-n所有的质数询问一遍,其次,例如质数2被询问过了,得到回答是YES,那么自然也要询问4.6.8.12....一直到pow原创 2015-09-23 13:16:00 · 625 阅读 · 0 评论 -
CF#322-B. Luxurious Houses-模拟水题
n个房子在一列上,每个房子有高度值 定义: 如果房子i的高度比右边所有房子都高,则 为 高贵的房子求出对每一个房子,要使得自己变成高贵的房子需要增加多少高度直接预处理右边所有房子高度最大值即可。最后输出比较是 右边所有房子的max_high大 还是自己大就可以了水题#include #include #include #include #inclu原创 2015-09-28 21:58:16 · 568 阅读 · 0 评论 -
cf#319-div2-B. Modulo Sum-(dp) 求模
题意要n个数中 看能否选出一个组合,使其之和为 m的倍数开一个dp[1001]、tmp_dp[1001]dp[i]的意思,是能得到 一个组合,其和为sum 且sum%m==i 那么我们就让dp[i]=1;表示存在在递推的过程中,如果我们在前i个数得到dp[j]=1;也就是存在sum1%m==j;那么对于a[i+1]、我们可以推得 一个sum2=sum1+a[i+1]、所以得到原创 2015-09-23 08:16:07 · 760 阅读 · 0 评论 -
CF#317-C. Lengthening Sticks-组合数学
给你a,b,c木棒的长度,给你一个额外长度L你可以给abc随意增加长度x y z(x+y+z《L,xyz可为0) 使得 abc构成一个三角形 首先,枚举合法的三角形肯定是超时的,正难则反,那么我们可以先计算出总共的方案数,以及不合法的三角形方案数,相减便是合法的了; 1、首先枚举 你 增加了的总长度为j (一定增加了j,不多不少), j范围是0到L对每一个j, 都有 方原创 2015-09-26 10:54:12 · 491 阅读 · 0 评论 -
CF#318-B - Bear and Three Musketeers-暴力寻找三元环
题意是给你n个点m条边求出一个三元环(与a相连的边包括b,c)、(与b相连的边包括a,c)(与c相连的边包括a,b)n,m都是1-4000一开始觉得暴力枚举复杂度肯定过不了。随手打了一发交了一次居然才62ms......后来再算算 的确数据规模有点小,直接暴力就可以了因为需要这个操作 与b相连的所有边中寻找是否存在c,所以直接用set构建邻接表了,查找就可以logn了原创 2015-09-25 09:30:00 · 912 阅读 · 0 评论 -
cf#286-B - Mr. Kitayuta's Colorful Graph-dfs
给你n个点,m个边的图,每条边边权代表一种颜色q次询问询问【a,b】边 是否能通过 单一颜色 的一条或多条边连接起来,输出 这样的颜色数量dfs判断 每次进入下一层递归的条件是 与上一次选的边颜色一样。。AC代码:#include #include #include #include #include #include #inclu原创 2015-11-03 14:44:23 · 632 阅读 · 0 评论 -
CF#323-DIV2-C - GCD Table - 贪心GCD
http://codeforces.com/contest/583/problem/C题意:由n个数,可以构成一个n*n的gcd矩阵 (每两个数之间)现在给你n*n个数(任意序),求出 矩阵对应的 n个数(任一合法答案)可知: 最大的数必然是要求的数。。。(不可能存在两个数的公约数是他)(如果最大的数有多个,那么MAX与MAX的公约数是MAX这种情况不影响)所以我们原创 2015-10-04 13:04:25 · 469 阅读 · 0 评论 -
cf#323-div2-A. Asphalting Roads-简单模拟
给一个n,n条竖的路,n条水平的路给你n*n个点,是路的交点,工人会按找给的点的顺序,到达该点。 一天走一个点如果该点任一路被铺过沥青,离开。如果该点横竖的路都没铺过沥青,把2条路都铺上输出铺沥青时候的 天数直接模拟就好。。。#include #include #include #include #include #include #include #原创 2015-10-04 13:10:07 · 622 阅读 · 0 评论 -
cf#323-div2-B. Robot's Task-简单模拟
题意给n,表示n台电脑,每台有一条信息给ai表示,取第i台电脑需要已经得到ai条信息要求取完所有电脑的信息一开始在位置1,可以不断的向前走,移到不能往前时,可以转向问最少转多少次方向。。。。必然是一路走到尾。。。最后才转向,才会使得转的次数最少。。。直接无脑模拟就好。#include #include #include #include #inc原创 2015-10-04 13:18:15 · 382 阅读 · 0 评论 -
CF#321-C - Kefa and Park-DFS
http://codeforces.com/contest/580/problem/C题意:给n,m;n个数构成一棵树接下来n个数,表示每个点的权值(1,0) 1表示该节点有猫,0表示没接下来n-1条边 找出 有多少个 叶子节点,满足 叶子节点到根节点1的路径上 连续的 权值为1的点不超过 m个直接dfs遍历邻接表,把节点的权值传递一遍如果上一原创 2015-10-03 01:06:51 · 517 阅读 · 0 评论