Codeforces
文章平均质量分 67
但求-_-心安
充满鲜花的世界到底在那里,如果他真的存在那么我一定会去。
展开
-
记第一次打codeforces
昨天第一次打cf,虽然我的账号申请很长时间了,但是暑假一直在玩多校,然后被多校玩了一把,真爽。说实话,我现在真的很喜欢这种比赛,发自内心,有点困了,昨天打了一小时,看着ac了两道就关机了,其实有一道后来被hack了然后因为我读题失误,造成了严重的掉分。3,4天一次的cf只要不是10:50的我以后必参加,我要开始上分了,上钻石,上大师。(梦想还是要有的)今天做了一下昨天的题,我认为,我最多做原创 2017-08-30 19:36:29 · 4221 阅读 · 0 评论 -
Codeforces Round #437 (Div. 2, based on MemSQL Start[c]UP 3.0 - Round 2) C - Ordering Pizza
都选最优的,最多会多出一盒饼,然后减去最少的就行了#include using namespace std;#define pb push_back#define mp make_pairconst int maxn=1e5+9;vector >aa,bb;bool cmp(pair a, pair b){ return a.first<b.first;}long l原创 2017-10-01 10:42:45 · 289 阅读 · 0 评论 -
Codeforces Round #437 (Div. 2, based on MemSQL Start[c]UP 3.0 - Round 2)E - Buy Low Sell High
#includeusing namespace std;const int inf = 0x3f3f3f3f;const int maxn = 300000 + 100;typedef long long ll;typedef long double ld;multiset st;int n, tmp;int main(){ while (~scanf("%d", &n))原创 2017-10-01 10:45:44 · 247 阅读 · 0 评论 -
吉尼斯战斗之夜——记第一次包夜开黑cf
12点半我们宿舍集合,四个人开黑打cf。本来应该上100多分的,现在只剩下了一个零头,让我怎么不生气。本来还想看日出了,一起玩玩魔兽就没去。。单机版的魔兽。开始的一个题,超级简单5分钟轻松水过。第二题特判,想了想也过了。第三题,只会多出一盒饼干,然后直接过了,去想e题,想不出来,后来给小伙伴讲题,然后就发现了bug,想去hack别人,就锁了,超级有意思的是hack别人不能直接复制别人的代码,没注释...原创 2019-05-15 13:50:57 · 638 阅读 · 6 评论 -
Codeforces Round #441 (Div. 2, by Moscow Team Olympiad) E. National Property (2-SAT问题)
第一次接触2-sat,突然感觉自己学的离散数学和一些数学中关于逻辑的东西有了用处,开始我在做这个题的时候,我在想应该怎么做呢,如果能有一个判断逻辑的算法,而且能直接算出他们的解或者推翻自己的逻辑输出错误,那该有多好。赛后题解就发现了2-sat。我却有懒得要命,只想会用,连原理都不想弄通,多嘲讽啊。即将去比赛是理由?【题意】对于一个数字如3,那么3'<3,且加了'的数均小于没有加'的数,对于两...原创 2017-10-18 20:26:06 · 324 阅读 · 0 评论 -
51nod 1424 零树(树dp)
dp【u】【0】代表根节点需要减的数,dp【u】【1】代表根节点需要加的数。#include using namespace std;const int maxn=1e5+5;vectora[maxn];long long dp[maxn][2];int v[maxn];void dfs(int u,int fa){ for(int i=0;i<a[u].size();i原创 2017-10-14 11:39:44 · 330 阅读 · 0 评论 -
Codeforces Round #442 (Div. 2) C. Slava and tanks
陷入了靠前焦虑状态,好长时间没做过题了吧,水题一个没想起来。。-------------------因为热爱,所以执着-----------------继续补题,不急慢慢来。#includeusing namespace std;#define pb push_back#define mp make_pairchar s[5005];int dp[50原创 2017-10-24 18:51:09 · 248 阅读 · 0 评论 -
Codeforces Round #442 (Div. 2) Olya and Energy Drinks(搜索 bfs 套路题)
根据题目可知,这个只允许每个节点搜一次,4个方向,所以只要访问过,就可以break;因为深搜的话,同一个方向,如果已经搜过,不可能再有一个比以前的节点小。这个深搜新套路,学习了,虽然我开始也想搜索,但是我掌握的搜索没有一个在这个时间复杂度过题的直接看了别人的代码,并找了队友错误代码,给他改成正确的,学到了这个套路。#includeusing namespace std;typedef _原创 2017-10-25 16:21:01 · 335 阅读 · 0 评论 -
codeforces 883 F. Lost in Transliteration
这是一个大水题,为什么要写他呢,因为我用错了一个string的方法,写下来提醒下自己。string 如果定义了s=“”;那么s就是等于空了,如果想加入值 s+=“1”,如果直接写s[0]=‘1’;就等于没写#includeusing namespace std;mapmp;int main(){int n,ans=0;cin>>n;string s,s1,s2;while原创 2017-10-25 17:46:57 · 377 阅读 · 0 评论 -
codeforces 883H Palindromic Cut
思维题,把字符串都拆开,如果3个拆成2 1,4个拆成2 2.这样奇数的个数是最少的,不过最少的不合适,就拆偶数的,一个偶数拆成两个奇数。#include#include#include#include#includeusing namespace std;const int N=4e5+5;int cnt[300];char ans[N],s[N];vectordan;原创 2017-10-26 15:57:27 · 347 阅读 · 0 评论 -
Codeforces 888B Buggy Robot (模拟)
#include #include #include #include #include #include void run(std::istream &in, std::ostream &out) { int n; in >> n; std::string s; in >> s; int x = 0; int y = 0; f原创 2017-11-13 20:34:54 · 383 阅读 · 0 评论 -
Codeforces Round #447 (Div. 2)C
套路深啊,开始并不知道怎么做,看了题解后发现自己好笨,确实好题,成功被hack很棒。C. Marco and GCD Sequencetime limit per test1 secondmemory limit per test256 megabytesinputstandard inputoutput原创 2017-11-22 18:33:47 · 229 阅读 · 0 评论 -
Codeforces Round #464 (Div. 2)C. Convenient For Everybody
简单的尺取法吧,昨天心态玩到爆炸,时区搞不准。。无奈自我退战了一波。#includeusing namespace std;#define pb push_back#define mp make_pairint a[100005];int main(){int n;scanf("%d",&n);for(int i=1;i<n;i++) scanf("%d",&a[原创 2018-02-18 10:33:51 · 369 阅读 · 0 评论 -
Codeforces Round #464 (Div. 2)E - Maximize!
二分求值,每次看了题解总感觉没难度,自己做酒做的很慢,还总是错,,#include<bits/stdc++.h>using namespace std;typedef long long ll;typedef pair<int, int> pii;typedef long double ld;#define F first#define S second...原创 2018-02-18 11:10:11 · 231 阅读 · 0 评论 -
Codeforces Round #467 (Div. 2)D. Sleepy Game(记忆化搜索+状态压缩)
这个题目一看就是记忆化搜,只有深搜肯定超时,如果不状态压缩成奇偶的话,数组开不下,记忆化搜索就是一个套路,不再赘述,我开始只有深搜,超时了发现要记忆化。#include #define ff first#define ss second#define mp make_pairusing namespace std;typedef long long ll;vector G[10原创 2018-03-06 17:19:49 · 176 阅读 · 0 评论 -
Codeforces Round #437 (Div. 2, based on MemSQL Start[c]UP 3.0 - Round 2) B - Save the problem!
特判就行了,用1,2来特判#include using namespace std;#define pb() push_back()#define mp make_pairconst int maxn=10;int main(){ //freopen("test.in","r",stdin);int n;cin>>n;if(n==1){ printf("1 1\原创 2017-10-01 10:38:45 · 343 阅读 · 0 评论 -
Codeforces Round #439 (Div. 2)C. The Intriguing Obsession (组合数详解)
首先题意:是如果两个相同颜色的桥能相互到达他们之间的最短距离至少为3。我们去想所有的桥两两组合数量的乘积就是答案。很难证明,因为我不会证明,但是那实际的例子画一画,能发现他的正确性。乘积不会有错误的情况出现,而且能包含所有情况。下面就是两两组合的数量应该怎么算,令xdp[x-1][y-1],所以dp[x-1][y-1]*y,如果第x个小球不放入盒子中。下一步就是dp[x-1][y]。所以状原创 2017-10-07 13:55:11 · 307 阅读 · 0 评论 -
Codeforces Round #431 (Div. 2) D Rooter's Song
这个题和那个蚂蚁爬杆的题目很是相似,刘汝佳白皮书第9页。从这个题目来说,x+y-t如果相等肯定会相遇。然后横着的和竖着的遇见会转向。先记录下来每个数的id,然后枚举横着的和竖着的x+y-t相同的数,改变方向,就是交换他们的id#includeusing namespace std;typedef long long ll;#define pb push_backconst int原创 2017-09-02 16:11:39 · 353 阅读 · 0 评论 -
Kirill And The Game
#includeusing namespace std;typedef long long ll;int main(){ long long l,r,x,y,k; while(~scanf("%I64d%I64d%I64d%I64d%I64d",&x,&y,&l,&r,&k)) { int flag=0; for(int i=l;i<=r;i++)原创 2017-08-30 19:38:20 · 401 阅读 · 0 评论 -
Gleb And Pizza
#includeusing namespace std;typedef long long ll;int main(){ double r,d,n,x,y,R,d1;while(cin>>r>>d>>n){ d=r-d; int cnt=0; for(int i=1;i<=n;i++){scanf("%lf%lf%lf",&x,&y,&R);d1=sqr原创 2017-08-30 19:38:57 · 263 阅读 · 0 评论 -
Ilya And The Tree
题意:求根节点到所有叶子节点,所有路径上的点的最大公约数,可以让一个点为0,暴力搜索,set去重#includeusing namespace std;typedef long long ll;#define pb push_backvector g[200005];sets[200005];int a[200005];void dfs(int x,int fa,int now)原创 2017-08-30 19:40:45 · 352 阅读 · 0 评论 -
Vitya and Strange (tire树)
题意:输入一个数列,输入x,让x和数列每一个数进行异或运算,这个真的难翻译,求mex()字典树的一种运用,把数列中没有的数,入字典树,如果有和x相同的肯定返回0 了#includeusing namespace std;typedef long long ll;#define pb push_backbool vis[600005]={0};struct node{ no原创 2017-08-30 19:43:53 · 316 阅读 · 0 评论 -
Codeforces Round #436 (Div. 2) Fire
01背包的变形问题。#include #define pb push_back#define mp make_pairusing namespace std;struct node{ int t,d,p,i;}a[105];bool cmp(node a,node b){ return a.d<b.d;}int b[105];int dp[2005],p原创 2017-09-26 17:03:12 · 206 阅读 · 0 评论 -
Codeforces Round #436 (Div. 2) Make a Permutation!
#include #define pb push_back#define mp make_pairusing namespace std;int a[200005];int vis[200005];//记录访问过几次bool vis1[200005];//记录是不是访问过int main(){ int n; scanf("%d",&n); memset(v原创 2017-09-26 17:04:53 · 205 阅读 · 0 评论 -
Codeforces Round #436 (Div. 2)Bus
有很多同学可能比较迷。#include #define pb push_back#define mp make_pairusing namespace std;int a[28];char s[300];int main(){ int a,b,f,k; scanf("%d%d%d%d",&a,&b,&f,&k); int cnt=0; int now原创 2017-09-26 17:07:23 · 234 阅读 · 0 评论 -
Codeforces Round #431 (Div. 2) Odds and Ends
水题,判定下奇偶就行了#includeusing namespace std;typedef long long ll;int a[105];int main(){ int n; scanf("%d",&n); for(int i=1;i<=n;i++)scanf("%d",&a[i]); if(n%2==0||a[1]%2==0||a[n]%2==0)printf("原创 2017-09-02 09:51:03 · 204 阅读 · 0 评论 -
Codeforces Round #431 (Div. 2) Tell Your World
不算很水的一个题找到和1,2不一条线的一个点。如果不能找到,就是他们一条线了,错误,然后3个不共线的点,如果有两条直线平行一共有三种可能。#includeusing namespace std;typedef long long ll;int a[1005];int main(){ int n; while(~scanf("%d",&n)) {for(i原创 2017-09-02 09:54:51 · 365 阅读 · 0 评论 -
Codeforces Round #431 (Div. 2) From Y to Y
贼水的一道题,其实应该先做这个题的,先做难点的掉的分少,我发现了这个规律哎,先做简单的掉的分多,先做难的可能做不出来,有风险,所以应该得到高分值,以后从c开始做,或者从b开始不能从a开始做了。上分之路漫漫,500+名次,好好把握以下应该能400+或者300+。好多人被弄下去了,开始都被弄到900+了,终测500+好开心。#includeusing namespace std;typed原创 2017-09-02 10:00:25 · 273 阅读 · 0 评论 -
Codeforces Round #434 k-rounding
水题#include using namespace std;#define pb() push_back()long long gcd(long long a,long long b){ if(b==0)return a; else return gcd(b,a%b);}const int maxn=10;int main(){// freopen("tes原创 2017-09-19 15:53:12 · 322 阅读 · 0 评论 -
Codeforces Round #434 Which floor?
暴力几个单元一层,看给出的数在几层,是不是有多种可能,没有输出在几层,有输出-1#include using namespace std;#define pb() push_back()int a[105],b[105];int main(){// freopen("test.in","r",stdin);int n,m;scanf("%d%d",&n,&m);int max原创 2017-09-19 15:54:12 · 400 阅读 · 0 评论 -
Codeforces Round #434 Did you mean...
这个从当前向前遍历,看是否需要加空格。暴力就行了#include char s[3002];int c[3001], N;inline int vo(char x){ return x == 'a' || x == 'e' || x == 'i' || x == 'o' || x == 'u';}void print(int i){ if (c[i]) { print(原创 2017-09-19 16:07:44 · 421 阅读 · 0 评论 -
Codeforces Round #434 Polycarp's phone book (字典树)
字典树,怎么是字典树呢,把所有的电话都存进去,电话的子串也存进去,每个节点标记上他是第几个数的,有个cnt计数。最后每个数输出最短的那个数。代码不长很好理解。#include using namespace std;#define pb() push_back() const int MAX=10;typedef struct TrieNode原创 2017-09-19 16:09:00 · 448 阅读 · 0 评论 -
Educational Codeforces Round 43 (Rated for Div. 2) E. Well played!
很烦的一个题目,只在一个仆人身上加血,可惜了,比赛的时候一个多小时,没想明白,代码中总是会有多行必出错的毛病。很烦#include using namespace std;struct node{ long long x,y,z;}a[200005];bool cmp(node b,node c){ return b.z<c.z;}long long pow1(原创 2018-05-01 18:21:10 · 263 阅读 · 0 评论