OJ_Codeforces
文章平均质量分 50
wang2147483647
这个作者很懒,什么都没留下…
展开
-
Gym 100204G Network Wars(最小割+0/1分数规划)
题目地址:http://codeforces.com/gym/100204/attachments思路:1.即要求求:其中Xi=1代表选择该条边,为0代表不选择该边。2.转化为:即:二分ans,设置所有边为W-ans,若一条边小于0,则直接将其加入(该边小于平均值,加入则会使最终结果更小),设所有负权边和为sum。求最小割,判断最小割+sum原创 2017-10-19 16:18:03 · 703 阅读 · 0 评论 -
Gym 100685F Flood(拓扑排序)
题目地址:http://codeforces.com/gym/100685/problem/F思路:拓扑排序。#include#include#include#include#include#define debuusing namespace std;const int maxn=1e4+50;struct Node{ double now,cap;} p[m原创 2016-09-01 22:23:47 · 402 阅读 · 0 评论 -
Gym 100685J Just Another Disney Problem(交互/排序)
题目地址:http://codeforces.com/gym/100685/problem/J思路:由最多询问次数10000次和n最大为1000,排序的时间复杂度应为nlogn,使用stable_sort(),时间复杂度为nlogn。sort()时间复杂度不总为nlogn。#include#include#include#includeusing namespace std;原创 2016-09-01 21:43:01 · 481 阅读 · 0 评论 -
Gym 100685E Epic Fail of a Genie(贪心)
题目地址:http://codeforces.com/gym/100685/problem/E思路:1.对于每个大于1的数,选择。 2.对于负数,从小到大排序,每次选择最小的两个, 若其乘积大于1,选择,否则,退出(负数其绝对值在减小,后面数一定不大于)。3.若此时选择集合为空,则比较最小的两个负数乘积(此时正数中全部小于1,相乘后变小)与整个数列最大的数,选择其中最大的。#include原创 2016-09-01 19:52:19 · 602 阅读 · 0 评论 -
Codeforces Round #293 (Div. 2) A. Vitaly and Strings(思路)
题目地址:http://codeforces.com/problemset/problem/518/A思路:类似数字,如果存在解,则a的值加一肯定为一个解,否则a的值加一为b。注意处理进位,最后与b字符串比较即可。#include#include#include#includeusing namespace std;const int maxn=150;char st[max原创 2016-07-25 21:36:36 · 389 阅读 · 0 评论 -
Codeforces Round #293 (Div. 2) C.Anya and Smartphone(模拟)
题目地址:http://codeforces.com/problemset/problem/518/C思路:模拟即可#include#include#include#include#define debuusing namespace std;const int maxn=1e5+50;int n,m,k;long long ans=0;int order[maxn]原创 2016-07-25 21:43:36 · 530 阅读 · 0 评论 -
Codeforces Round #293 (Div. 2) D. Ilya and Escalator(概率DP)
题目地址:http://codeforces.com/problemset/problem/518/D思路:dp[i][j]表示第i秒有j个人。j==n时,d[i][j]=d[i-1][j-1]*p+d[i-1][j] j==0时,d[i][j] = d[i - 1][j] * (1 - p) 其他,d[i][j] = d[i - 1][j - 1] * p + d[i原创 2016-07-25 21:57:24 · 535 阅读 · 0 评论 -
Codeforces Round #199 (Div. 2) B. Xenia and Spies(贪心)
题目地址:http://codeforces.com/problemset/problem/342/B思路:在某时刻,若能传这一直向目标方向传递,若不能则等待。#include#include#include#include#include#includeusing namespace std;const int maxn=1e5+50;struct Node{原创 2016-07-26 09:33:52 · 540 阅读 · 0 评论 -
Codeforces Round #199 (Div. 2) C. Cupboard and Balloons(数学)
题目地址:http://codeforces.com/problemset/problem/342/C思路:(1)h%r(2)h%r>=r/2&&h%r(3)h%r>=sqrt(3)*r/2,上面放3个#include#include#includeusing namespace std;long long r,h;int main(){ scanf("%I原创 2016-07-26 09:44:49 · 438 阅读 · 0 评论 -
Codeforces Round #199 (Div. 2) E. Xenia and Tree(分块)
题目地址:http://codeforces.com/problemset/problem/342/E思路:dist[i]表示i到最近节点的距离。当有一定数量的红点未处理时,统一进行一次BFS,获得初步的dist值。对于每两个询问,用LCA求得最近距离,最后与dist[i]取最小值即为答案。#include#include#include#include#include#incl原创 2016-07-26 10:04:55 · 645 阅读 · 0 评论 -
CodeForces 446A DZY Loves Sequences(DP)
题目地址:http://codeforces.com/problemset/problem/446/A思路:f[i]表示到第i个数递增的数的个数,g[i]表示从第i个数开始递增的数的个数。则分三种情况讨论:(1) *...... (2) ......* (3) ......*....... 枚举i,当a[i+1]-a[i-1]>1时,表明可更改i使得该段递增,即长度为f[i-1]+g[i原创 2016-10-27 19:58:42 · 513 阅读 · 0 评论 -
Codeforces 765D Artsem and Saunders(数学)
题目地址:http://codeforces.com/contest/765/problem/D思路:g(h(x))=x 1h(g(x))=f(x) 1由(2)得h(g(h(x)))=f(h(x)),由(1)得h(g(h(x)))=h(x),则h(x)=f(h(x)) (3)同理,由(1)得,g(h(g(x)))=g(x),由(2)得,g(h(g(x)))=g(f(x原创 2017-02-14 22:19:51 · 468 阅读 · 0 评论 -
Gym 100273L Language Recognition(Trie+Hash)
题目地址:http://codeforces.com/gym/100273/attachments思路:1.建立Trie,显然所有叶子节点都是等效的,Hash值设为1。2.对于非叶子节点,需将其儿子Hash值与边对应字母同时考虑。Hash[root]=sigma(Hash[son]*ch+1),Hash[root]*=Son[root],ch为字符,son为root的儿子节点,Son[原创 2017-10-09 17:07:15 · 663 阅读 · 0 评论 -
Gym - 100792K King's Rout(拓扑排序+优先队列)
题目地址:http://codeforces.com/gym/100792/problem/K思路:1.根据到达顺序,可以使用拓扑排序:a比b早,a->b。2.要求编号为1的尽量靠前,满编号为1的节点尽量靠前的条件下编号为2的尽量靠前。。。。满足n-1尽量靠前的情况下编号为n的尽量靠前。若直接进行优先队列(标号小优先)+拓扑排序,对于样例3 1;3 1,由于2、3节点入度均为0,则都会原创 2017-09-21 22:24:50 · 436 阅读 · 0 评论 -
Gym 100206B Fire station building(三分)
题目地址:http://codeforces.com/gym/100206/attachments思路:1.求出任意两点最短距离g(i,j),对于建在边u-v长为len的消防站(位置为x),则到点i的最短距离为min{g[u][i]+x,len-x+g[v][i]}(r2.枚举每条可建消防站的边,显然总期望距离为一凹函数,三分求取最小值即可。3.当图不连通或道路长度不足以建站时无解原创 2017-10-07 18:57:21 · 646 阅读 · 0 评论 -
Gym - 101201F Illumination(2-sat)
题目地址:http://codeforces.com/gym/101201/attachments思路:比较明显的2-sat:每个位置只可选择行或者列,若两位置选择行发生冲突,则必有一选行另一选列,列同理。对应连边判断是否有解即可。#include#include#include#include#include#include#define lson l , m, rt <原创 2017-09-23 20:16:41 · 447 阅读 · 0 评论 -
Gym - 101201J Shopping(RMQ+二分)
题目地址:http://codeforces.com/gym/101201/attachments思路:1.题目相当于对于一数,依次对[L,R]区间内的数取模,结果即为答案。2.若对于区间内一大于v的数,其取模结果仍为本身,无作用。则问题变为快速寻找区间内第一个不大于v的数(区间内数无序)。3.考虑二分区间[L,R],mid=(L+R)/2。若区间[L,mid]内最小值不大于v原创 2017-09-23 19:58:42 · 654 阅读 · 0 评论 -
CodeForces - 748F Santa Clauses and a Soccer Championship(思路)
题目地址:http://codeforces.com/problemset/problem/748/F思路:由于整个结构为树,则每个点之间的最短路径唯一,则可以发现住宿处个数存在且最小为1。则住宿处为某一点将所有team分成两部分且在所有配对的team的最短路上,则住宿处的位置为某子树中包含家乡的点的个数不小于k的最小子树的根节点。则分队可以将该子树的两部分直接分配:dfs过程中将家乡加入左边原创 2017-03-04 22:16:21 · 742 阅读 · 0 评论 -
CodeForces - 748E Santa Claus and Tangerines(枚举)
题目地址:http://codeforces.com/problemset/problem/748/E思路:求使得分得的最小值最大。由于最大值为1e7,所以可以直接从大到小枚举最小个数i。当分得的个数总和大于人数时,代表此即为最小值(从大到小枚举,也即为最小值最大)。则a[i/2]=a[i/2]+a[i];a[(i+1)/2]=a[(i+1)/2]+a[i](a[i]代表可以由i分得的数的个数原创 2017-03-04 19:44:18 · 402 阅读 · 0 评论 -
Codeforces Round #395 (Div. 2) D. Timofey and rectangles(思路)
题目地址:http://codeforces.com/contest/764/problem/D思路:考虑两相接触的矩形,由于矩形边长为奇数,所以若能相接触必然接触的两个矩形横纵坐标(以某一顶点代表此矩形)奇偶性至少有一个不同(左右:横坐标奇偶性不同;上下:纵坐标奇偶性不同)。而坐标共有四种:奇奇,偶偶,奇偶,偶奇,颜色有四种,保证可接触的矩形颜色不同即可:奇奇4,奇偶3,偶奇2,偶偶1。原创 2017-02-03 15:51:08 · 383 阅读 · 0 评论 -
Codeforces 764C Timofey and a tree(思路)
题目地址:http://codeforces.com/contest/764/problem/C思路:对于所有两点颜色不同的边,一定为其中一点与根节点相连(若不相连则子树颜色不同),所有两点颜色不同的边组成的图,其边总数为tot,则根节点即为度为tot的点(与所有颜色不同的点相连)。#include#include#include#include#include#include原创 2017-02-03 15:05:55 · 405 阅读 · 0 评论 -
Codeforces Round #197 (Div. 2) D. Xenia and Bit Operations(线段树)
题目地址:http://codeforces.com/problemset/problem/339/D思路:线段树。PushUp时根据层数奇数偶数判断使用|还是^#include #include #include #include #include using namespace std;#define maxn (1<<18)int a[maxn];int sum[ma原创 2016-07-26 10:16:02 · 491 阅读 · 0 评论 -
Codeforces Round #197 (Div. 2) C. Xenia and Weights(DFS)
题目地址:http://codeforces.com/problemset/problem/339/C思路:dfs,当满足条件时放入,不满足则试下一个。#include#include#include#include#include#includeusing namespace std;int m;char st[15];vector ans;void solv原创 2016-07-26 10:24:32 · 500 阅读 · 0 评论 -
Codeforces Round #358 (Div. 2) C. Alyona and the Tree(DFS)
题目地址:http://codeforces.com/problemset/problem/682/C思路:DFS,维护该节点到根节点的距离与该节点到根节点路径上节点距离的最小值,如果dist[v]-minn>a[v],则return,该子树都不符合条件,否则,计数加一ans++,结果为总节点数-ans。#include#include#include#include#includ原创 2016-07-26 10:38:44 · 479 阅读 · 0 评论 -
Codeforces Round #245 (Div. 1) B. Working out(DP)
题目地址:http://codeforces.com/problemset/problem/429/B思路:只有一个格子重合,则(1)A向下,B向右,相遇后A继续向下,B继续向右;A向右,B向上,相遇后A继续向右,B继续向上。则d[0][i][j]表示从(1,1)到(i,j)的最大和,d[1][i][j]表示从(i,j)到(n,m)的最大和,d[2][i][j]表示从(n,1)到(i,j)原创 2016-07-27 16:44:46 · 532 阅读 · 0 评论 -
Codeforces Round #301 (Div. 2) B. School Marks(贪心)
题目地址:http://codeforces.com/problemset/problem/540/B思路:Less表示小于y的数的个数,More表示大于y等于的数的个数。则若Less>=n/2+1时无解,则n/2+1之后应加入的元素个数num为n/2+1-More,为保证总和不超过x,每次加入最小值y。n+2/1之前应加入的元素为n-More-Less-num,同理为保证总和不超过x,每原创 2016-07-27 16:53:32 · 518 阅读 · 0 评论 -
Codeforces Round #301 (Div. 2) C. Ice Cave(BFS)
题目地址:http://codeforces.com/problemset/problem/540/C思路:从起始点走,每次走到一个‘.'点,则将其置为‘X'并加入队列,当搜索到节点为’X'且该节点为终点时,则成功抵达。若不存在,则无法到达。#include#include#include#include#include#includeusing namespace std;原创 2016-07-27 18:22:06 · 464 阅读 · 0 评论 -
Codeforces Round #301 (Div. 2) D. Bad Luck Island(概率DP)
题目地址:http://codeforces.com/problemset/problem/540/D思路:d[i][j][k]表示还剩下i个石头,j个剪刀,k个布时的概率。总情况数:tot=i*j*k则d[i-1][j][k]+=d[i][j][k]*pi,pi=(i*k)/ tot ,即石头与布相遇。 d[i][j-1][k]+=d[i][j][k]*pj,pj=(i*j原创 2016-07-27 18:35:57 · 460 阅读 · 0 评论 -
Codeforces Round #298 (Div. 2) C. Polycarpus' Dice(思路)
题目地址:http://codeforces.com/problemset/problem/534/C思路:对于当前色子,求出其他色子所能掷出的最小值之和与最大值之和。当其他色子取最小值时,该色子取最大值A-(n-1),大于该值均不可能;当其它色子取最大值,该色子取最小值A-sum+a[i],小于该值均不可能。则由不可能区间可以求出不可能掷出的数字个数。#include#includ原创 2016-07-27 18:58:41 · 524 阅读 · 0 评论 -
Codeforces Round #298 (Div. 2) D. Handshakes(贪心)
题目地址:http://codeforces.com/problemset/problem/534/D思路:把握手次数为i的人标号放入栈s[i]中,当栈非空时,栈顶元素进入房间并让i++。 否则,s[i-1],s[i-2],s[i-3]各出栈一个,并让i-3(代表三人出去比赛)。当所有人都进入房间或者i#include#include#include#include#inclu原创 2016-07-27 19:20:25 · 480 阅读 · 0 评论 -
Codeforces Round #177 (Div. 1) C. Polo the Penguin and XOR operation(贪心)
题目地址:http://codeforces.com/problemset/problem/288/C思路:保证位数尽量大的情况下使得每二进制位均为一的情况下结果最大,从后向前枚举(保证位数尽量大),num表示该数i二进制有几位,x即为使得与i异或后每二进制位均为一的数,v[x]标记是否使用过该数,若未使用则与i搭配。原创 2016-07-29 21:30:04 · 1039 阅读 · 0 评论 -
Codeforces 589B Layer Cake(两次排序)
题目地址:http://codeforces.com/problemset/problem/589/B思路:#include#include#include#include#define debuusing namespace std;const int maxn=4000+50;typedef long long LL;struct Node{ int r,c;原创 2016-08-10 19:33:39 · 507 阅读 · 0 评论 -
Gym 100685G Gadget Hackwrench(LCA)
题目地址:http://codeforces.com/gym/100685/problem/G思路:不考虑方向,则#include#include#include#include#include#include#define debuusing namespace std;const int maxn=1e5+50;struct Node{ int p,id;原创 2016-08-31 16:08:15 · 594 阅读 · 0 评论 -
Codeforces Round #244 (Div. 2) E. Police Patrol(数学)
题目地址:http://codeforces.com/problemset/problem/427/E思路:显然,位置选在所有数的中位数时距离最短。则从两头取,累计和即可。#include#include#include#includeusing namespace std;typedef long long LL;const int maxn=1e6+50;LL ans;原创 2016-07-27 16:36:22 · 600 阅读 · 0 评论 -
Codeforces Round #202 (Div. 1) A. Mafia(二分,思路)
题目地址:http://codeforces.com/problemset/problem/348/A思路:将问题集中在裁判上,每轮都有一人当裁判,设进行k轮,则k*n-sum>=k,sum为每个人想玩游戏轮数之和,二分答案即可。#include#include#include#includeusing namespace std;typedef long long LL;in原创 2016-07-26 22:04:53 · 498 阅读 · 0 评论 -
Codeforces Round #357 (Div. 2) C. Heap Operations(优先队列)
题目地址:http://codeforces.com/problemset/problem/681/C思路:优先队列模拟,注意判断队列为空,若删除时为空,先加入0再删除。#include#include#include#include#include#define debuusing namespace std;const int INF=1e9+1;int n;vect原创 2016-07-26 10:47:18 · 434 阅读 · 0 评论 -
Codeforces Round #305 (Div. 1) A. Mike and Frog(数学)
题目地址:http://codeforces.com/problemset/problem/547/A思路:找循环节。%m的余数有m种,pos1表示a1第一次出现的时间,pos2表示a2第一次出现的时间,l1表示第一个循环长度,l2表示第二个循环长度。循环节长度最大为m,所以最大需模拟2*m次,pos1#include#include#include#include#include原创 2016-07-26 10:57:55 · 585 阅读 · 0 评论 -
Codeforces Round #305 (Div. 1) B. Mike and Feet(思路)
题目地址:http://codeforces.com/problemset/problem/547/B思路:求出l[i],rt[i],表示a[i]作为区间【lt[i],rt[i]】内的最小值。则L=rt[i]-lt[i]+1,即为size为L的strength。ans[L]=max(ans[L],a[i]),即为size为L的最大strength。#include#include#in原创 2016-07-26 11:14:42 · 705 阅读 · 0 评论 -
Codeforces Round #271 (Div. 2) D. Flowers(DP)
题目地址:http://codeforces.com/problemset/problem/474/D思路:f[i]表示长度为i时的方案数,当0=k时,f[i]可以是f[i-1]加上一朵红花,也可以是f[i-k]加上k朵白花。即f[i]=f[i-1]+f[i-k],求前缀和,则区间【a,b】内方案数为sum[b]-sum[a-1]。#include#include#incl原创 2016-07-26 19:48:04 · 457 阅读 · 0 评论 -
Codeforces Beta Round #95 (Div. 2) D. Subway(环最短路)
题目地址:http://codeforces.com/problemset/problem/131/D思路:寻找环。首先将度数为1的节点入队,将与度数为1的节点的度数减一。将度数小于2的节点入队并标记,最后没有被标记的节点就是组成环的节点。#include#include#include#include#include#include#define debuusing n原创 2016-07-26 20:09:00 · 364 阅读 · 0 评论