CodeForces
Pure_W
博主很懒=w=
展开
-
【CodeForces】759C Nikita and stack
【CodeForces】759C Nikita and stack很容易想到线段树,把插入看成1,弹出看成-1,做后缀和后用线段树维护 这题就是一个区间加减和区间最大值问题了 (区间最大值大于0表示栈顶在此)原创 2017-02-04 21:20:57 · 891 阅读 · 0 评论 -
Gym - 100886B 2015-2016 Petrozavodsk Winter Training Camp, Saratov SU Contest B - Game on Bipartite
题目有很强的结论,看代码应该可以知道结论是什么但是想了两天还是没有想到一个严格的证明大概思路:首先边的奇偶影响答案(走过去优就继续拓展,不优就走回来)转化为01问题考虑消元的过程中,对面的一个点会发生什么如果这个点可以成为主元,说明从这个点出发一定会有奇数长度的路径(即便是双方交替进行)↑感性认识一下感觉非常有道理,然而并不会证(sad然后基于这个结论就可以做了,把其他所有点的出边...原创 2018-10-31 19:29:33 · 496 阅读 · 0 评论 -
Gym - 100886F 2015-2016 Petrozavodsk Winter Training Camp, Saratov SU Contest F - Empty Vessels
所有的操作都可以转化为向最大的杯子里倒一整杯的水(模意义下完全背包)#include<bits/stdc++.h>using namespace std;#define For(i,a,b) for (int i=a;i<=b;++i)int fm[20005],a[11],A,id,mod,n;queue<int> Q;void output(in...原创 2018-11-01 14:30:44 · 532 阅读 · 0 评论 -
Gym - 100886D 2015-2016 Petrozavodsk Winter Training Camp, Saratov SU Contest D - Catenary
题目中有一句很迷幻的话:这是对双曲余弦函数的离散模拟翻译成人话就是长成下图这样的图形就别考虑了,总体上还是和双曲余弦函数图像比较像的双曲余弦函数在这种情况下也可以叫悬链线,很容易可以查到相关资料(不过对于这题没啥帮助)根据题目的需求,把图形翻转一下得到向上垂的图形因为铰链连接的木棍,在连接点上力的方向不一定沿杆的方向,所以需要对力的方向进行分析下图黑色是木棍,红色是力的方向记从x轴...原创 2018-11-03 01:03:44 · 795 阅读 · 0 评论 -
Gym - 100109F 2012-2013 ACM-ICPC, NEERC, Southern Subregional Contest F - Dumbbells
直接暴力限定每种质量物品个数然后求价值前k大的质量#include<bits/stdc++.h>using namespace std;#define N 4005#define mp(a,b) make_pair(a,b)#define fi first#define se secondpair<int,int> p[N];int n,k,id[N],...原创 2018-11-05 09:20:08 · 257 阅读 · 0 评论 -
Gym - 100109L 2012-2013 ACM-ICPC, NEERC, Southern Subregional Contest L - Preparing Problem
先算出完成时间,再加上溢出时间#include<bits/stdc++.h>using namespace std;int main(){ freopen("input.txt","r",stdin); freopen("output.txt","w",stdout); int a,b,n,l,r; scanf("%d%d%d",&a原创 2018-11-05 09:21:40 · 244 阅读 · 0 评论 -
Gym 100151C 2011-2012 ACM-ICPC, NEERC, Southern Subregional Contest C. Dice Tower
相对面总和为7,中间所有骰子被吃了一个相对面,最顶上和最底下任选一面被吃(对只有一个骰子不成立)n个骰子最大可以表示的值可以算出,相对的,可以算出要求值对应的n,再检查一下是否大于n最小可以表示的值#include<stdio.h>int main(){ freopen("input.txt","r",stdin); freopen("output.txt...原创 2018-11-08 21:11:56 · 289 阅读 · 0 评论 -
Gym 100151E 2011-2012 ACM-ICPC, NEERC, Southern Subregional Contest E. Berland Chess
如果可以记忆化搜索,切勿写剪枝爆搜#include<stdio.h>#include<cstring>#include<queue>#include<algorithm>using namespace std;#define For(i,a,b) for (int i=a;i<=b;++i)#define Void inline ...原创 2018-11-08 21:13:33 · 262 阅读 · 0 评论 -
Codeforces Round 520 div2
开了场VP,头上充满buffA读错题,题意只找一段,wa一发找到最长的连续子串就好(补0和1001)#include&lt;bits/stdc++.h&gt;using namespace std;int n,ans,a[1005];int main(){ scanf("%d",&amp;n); for (int i=1;i&lt;=n;i++) scanf(&原创 2018-11-16 18:39:13 · 179 阅读 · 0 评论 -
Codeforces 1076D Educational Codeforces Round 54 (Rated for Div. 2) D. Edge Deletion
考虑到每条边最多只能使一个点进入最短路图,所以答案就是构建一棵不超过k条边的最短路树注意不要搞出森林#include<bits/stdc++.h>using namespace std;#define N 300005typedef long long ll;int Q[N],tot,s[N],ans;bool vis[N],op[N];ll dis[N];str...原创 2018-11-15 08:27:45 · 185 阅读 · 0 评论 -
Codeforces 1076E E. Vasya and a Tree
这是一个静态问题按DFS走,进入一个子树时把子树根上挂的修改激活,离开子树时撤销这样所有的修改和查询都是对于深度的QvQ:递归三参数栈爆炸了#include<bits/stdc++.h>using namespace std;#define M 524288#define N 300005typedef long long ll;int L,R,aim,n,m,to...原创 2018-11-15 11:35:17 · 387 阅读 · 0 评论 -
gym 101981K 2018ICPC南京区域赛 K Kangaroo Puzzle
训练的时候用的做法是选一个点追所有人但是cjb的这个做法实在是太过分了(雾随个50000的串就能过#include<bits/stdc++.h>using namespace std;int main(){ srand(time(0)); char t[]={'U','D','L','R'}; for (int i=0;i<50000;i++) putchar...原创 2018-11-22 14:54:52 · 698 阅读 · 0 评论 -
gym 101981H 2018ICPC南京区域赛 H Huge Discount
有趣的题目 thx to ZJU很容易注意到如果有一个数多于一半,那么只能剩它考虑其他情况,发现答案只可能是0和1那么就可以拿0开刀了,判断是否存在一个0使得序列可以只消剩0(包含这个0)这个判断可以转化为,这个0左右分别可以消成全0序列(1和2的个数不超过一半)做的时候从右向左扫,可以直接统计右侧的情况,左侧的情况开个线段树维护一下#include<bits/stdc++.h...原创 2018-11-22 15:03:56 · 906 阅读 · 0 评论 -
Codeforces 2C - Commentator problem
可以用数学方法做初试爬山#include<stdio.h>#include<cmath>const int fx[4]={1,-1,0,0},fy[4]={0,0,1,-1};inline double sqr(double x){return x*x;}const double eps=1e-6;double x[3],y[3],r[3],X,Y;in...原创 2018-12-02 09:49:07 · 292 阅读 · 0 评论 -
gym 101981E 2018ICPC南京区域赛 Problem E. Eva and Euro coins
k个相同字符相邻是没有意义的,可以消去具体解释:k个1可以变成0k个0可以把其后方紧邻的1搬到前面贪心处理两个串,判断是否相等#include<stdio.h>#define N 1000005int stk[N][2],top,n,k;char a[N],b[N];inline void solve(char s[]){ stk[top=0][0]=-1;...原创 2018-12-03 19:35:49 · 667 阅读 · 0 评论 -
[Codeforces] Round #528 div1C div2E
https://codeforces.com/contest/1086/problem/C贪心匹配,只有三种状态:压上界,压下界,不压界(出解)#include<bits/stdc++.h>using namespace std;#define N 1000005int n,k;char a[N],b[N],c[N];int go[30];bool use[30];...原创 2018-12-24 08:22:54 · 273 阅读 · 0 评论 -
Gym - 100886I 2015-2016 Petrozavodsk Winter Training Camp, Saratov SU Contest I - Archaeological Res
假如第i行有数j,说明i+1到j-1的数均与j不同那么从前往后依次确定每个数,结合上述限制贪心即可#include<bits/stdc++.h>using namespace std;#define M 524288#define N 300005int ans,aim,n,a[N],t[M<<1],vis[N];void find(int k,int l...原创 2018-10-29 09:32:48 · 366 阅读 · 0 评论 -
Gym 101669J SEERC 2017 Cunning Friends
手算了几个小数据猜结论冲了#include<bits/stdc++.h>inline void op(int x){ puts(x?"Win":"Lose"); exit(0);}int main(){ int n,a=0,b=0,c=0; scanf("%d",&n); for (int i=1,x;i<=n;i+...原创 2018-10-29 00:57:06 · 681 阅读 · 0 评论 -
[Gym] 101669G SEERC 2017 Robots
斜率越大的放越前面,贪心模拟一次#include&lt;bits/stdc++.h&gt;using namespace std;#define pow(a) ((a)*(a))int n;struct ver{ double a,t; void in(){scanf("%lf%lf",&amp;a,&amp;t);} #define cver c原创 2018-10-29 00:54:46 · 242 阅读 · 0 评论 -
【Codeforces Gym】 100162G Lyndon Words
【Codeforces Gym】 100162G Lyndon Words大意:一个字符串是合法的当且仅当这个字符串循环同构的其他串的字典序都比它大。例如”ababa”是不合法的,而”aabab”是合法的,”abab”是不合法的。原创 2017-02-27 22:32:22 · 490 阅读 · 0 评论 -
【Codeforces Gym】100162 H Temperature
【Codeforces Gym】100162 H Temperature大意:有n个学生在做测量温度的实验,但是有些同学还没做完就上交了实验报告。温度的测量值精确到整数。对于第i个同学,如果他做完了实验,那么他的报告中温度值就是他实际的测量值原创 2017-02-27 18:19:43 · 350 阅读 · 0 评论 -
【CodeForces】343D Water Tree
【CodeForces】343D Water Tree应该不需要传送门了……Solution两个操作,灌水和抽水。 灌水相当于子树覆盖,抽水是链覆盖。 那么维护一下一颗子树中是否有抽过水,在灌水的时候,如果子树中有抽水标记,那么清除标记,并在子树根的父亲的位置打个标记。 【即先抽再灌等于在子树根的父亲的位置抽】DFN序再用线段树搞搞就好原创 2017-02-03 12:44:46 · 673 阅读 · 0 评论 -
【Codeforces Gym】 100162B Circle of Stones
【Codeforces Gym】 100162B Circle of StonesDiscription题目大意是给一圈有颜色的石头,问对于所有长度是否可以拿去该长度的石头(连续),使得不存在相邻两个石头颜色相同。Solution首先是那些原本就贴在一起的……还说啥……拆了 这样就可以拆成很多段(也有可能一个都没)原创 2017-01-10 09:47:23 · 593 阅读 · 0 评论 -
【CodeForces】- 739C Alyona and towers
Alyona has built n towers by putting small cubes some on the top of others. Each cube has size 1 × 1 × 1. A tower is a non-zero amount of cubes standing on the top of each other. The towers are next to原创 2016-12-28 22:35:13 · 623 阅读 · 0 评论 -
【CodeForces】484E Sign on Fence
【CodeForces】484E Sign on Fence因为一个区间内的广告高度受限于最高的篱笆的高度,所以可以将所有的篱笆从高到低插入,成为一棵可持久化线段树。 维护区间内最长连续篱笆的长度 对每个询问,二分答案然后检查是否存在长度超过w的篱笆段原创 2017-03-23 07:41:12 · 317 阅读 · 0 评论 -
【CodeForces】311E Biologist
【CodeForces】311E Biologist比较经典的网络流了 每条狗,如果是0就和源连v[i],否则和汇连 人也是,0和源连w[i] (+g),然后连所有指定的狗 反之亦然考虑一下割的含义就比较显然了原创 2017-03-22 22:14:08 · 347 阅读 · 0 评论 -
【CodeForces】gym-101205B Curvy Little Bottles (2012 ACM-ICPC World Finals B)
【CodeForces】gym-101205B Curvy Little Bottles (2012 ACM-ICPC World Finals B)原创 2017-03-23 21:29:13 · 420 阅读 · 0 评论 -
【Gym】101194J Mr.Panda and TubeMaster
看到题的第一想法:上下界最大费用循环流后来问了下同学,发现可以如下表示: 每个格子拆成入和出, 假如这个格子没有限制必须走,那么它就可以不参与匹配,也就是匹配自己即可 对图黑白染色以决定是竖进横出还是横进竖出 向相邻格子匹配权为壁的代价 然后就变成了二分图最大权匹配原创 2017-05-02 16:25:04 · 788 阅读 · 0 评论 -
【CodeForces】792D Paths in a Complete Binary Tree
考虑一下如何方便地表示树中的一个点,模拟即可原创 2017-05-02 16:15:57 · 354 阅读 · 0 评论 -
【GYM】101170H Hamiltonian Hypercube
格雷码普及题原创 2017-05-02 16:14:15 · 552 阅读 · 0 评论 -
【CodeForces】426Div2 A The Useless Toy
链接:http://codeforces.com/contest/834/problem/ASolution: 很简单的整除判断 因为太久没有写过代码怕出问题,写得非常累赘(暴力)原创 2017-07-31 10:37:28 · 348 阅读 · 0 评论 -
【CodeForces】426Div2 B The Festive Evening
链接:http://codeforces.com/contest/834/problem/BSolution 暴力计算一下每个时刻有多少门开启就好 注意不要先关门再判断原创 2017-07-31 10:44:31 · 521 阅读 · 1 评论 -
【CodeForces】426Div2 C The Meaningless Game
链接:http://codeforces.com/contest/834/problem/CSolution 考的时候想复杂了,没从整体下手。 因为一边乘了k一边乘了k^2,所以乘起来一定是k^3 记c=(a∗b)13c=(a*b)^\frac{1}{3},如果a、b mod c都是0,那么就能构造出满足条件的方案原创 2017-07-31 10:57:31 · 382 阅读 · 0 评论 -
[Gym] - 100886K 2015-2016 Petrozavodsk Winter Training Camp, Saratov SU Contest K - Toll Roads
差点因为读漏条件凉凉枚举free链的一个头,将其提根进行类dp的计算(提根后只需考虑向下的边)对于根到某个点的答案,可以依靠维护子树内最长链、一段为子树根的最长链、子树外最长链、子树外一端在free链上的最长链这四个信息得到。因为转移的需求不能只记最大,可能需要次大和第三大。情况比较多合并注意不要漏,以及边界问题小心初值不合适#include<bits/stdc++.h>u...原创 2018-10-29 00:50:01 · 570 阅读 · 0 评论 -
Codeforces Round #528 (Div. 1, based on Technocup 2019 Elimination R D. Rock-Paper-Scissors Champion
https://codeforces.com/contest/1086/problem/D因为每次只修改一个位置,很容易想到去确认每次造成的变化。但是实际上最后都绕不过一个问题,怎么判断一个人是否可以成为冠军。那么相当于在不动这个人的情况下,要把两边的克制它的人清掉。换句话说(以剪刀为例),某一侧有石头,那么那一侧就要有布。那么对应的不能成为冠军的剪刀就是最左边的石头到最左边的布之间的(要...原创 2019-01-03 12:24:32 · 301 阅读 · 0 评论