codeforces
mengbi_er
一个蒟蒻JLoier
展开
-
Codeforces Round #421 (Div. 2) C. Mister B and Boring Game
题目大意按字母表顺序给出一个初始字符串s,长度为a,你可以任意添加b个字符,之后你的对手将加入a个不同的长度为a的后缀中未出现的字符(字典序加入),询问从l到r中最少出现几个不同字符。题解将前a个字符写出,我们可以发现,只有自己写出前面出现过的字符,对手写出的新字符个数才能尽可能少。而为了让区间中不同字符个数少,我们应写相同的字符,由于对手只写后a字符中未出现的字符,所以每次写的字符应是当前最后一个原创 2017-06-28 01:53:53 · 570 阅读 · 0 评论 -
Codeforces Round #433 (Div. 2)A. Fraction
题目大意求分子分母和为n的最大真分数。(分子分母互质)题解暴力QAQ。#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>using namespace std;int read(){ char ch=getchar();int f=0; while(ch<'0'||ch>'9') c原创 2017-09-07 14:11:56 · 194 阅读 · 0 评论 -
Codeforces Round #433 (Div. 2)B. Maxim Buys an Apartment
题目大意一个有基佬气息的人想让他左或有有邻居,知道邻居数,但不知道位置,求最少和最大能选几个位置。题解显然k=0 ans:0,0 k=n min=0; else min=1; max=max(n-k,2*k)(一个邻居有两个位置)。#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>using na原创 2017-09-07 14:16:17 · 211 阅读 · 0 评论 -
Codeforces Round #433 (Div. 2) C. Planning
题目大意飞机延误k分钟,每分钟只能起飞一架,每架飞机每晚一分钟有个代价,求最小代价。题解显然前k分钟代价不可避免,直接加入优先队列,其余的先加入优先队列并取出队首。#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>#include<queue>using namespace std;int read原创 2017-09-07 14:20:05 · 238 阅读 · 0 评论 -
Codeforces Round #433 (Div. 2) D. Jury Meeting
题目大意所有人要去0号城市,并且只坐飞机,飞机只有去0的和从0出发的,所有人要呆k天,问最小机票花费。题解对去的和返回的飞机分类排序,去的从早到晚,回来的从晚到早,处理每个时间上所有人去0的最小代价(由于排好序,所以选择时选的是时间最小的),从晚到早选返回的,所有人都满足时算一下代价,最后找出代价最小值。#include<iostream>#include<cstdio>#include<cst原创 2017-09-07 14:28:07 · 223 阅读 · 0 评论 -
Codeforces Round #430 (Div. 2) A. Kirill And The Game
是否存在,l<=a<=r,a*k==b,x<=b<=y. 暴力模拟,不要企图o(1)算。#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>using namespace std;int read(){ char ch=getchar();int f=0; while(ch<'0'|原创 2017-08-30 14:54:19 · 193 阅读 · 0 评论 -
Codeforces Round #430 (Div. 2) B. Gleb And Pizza
题目大意有多少圆在外面圆内里面圆外。题解求一下圆心到原点距离,然后加r减r判断即可。#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>#include<cmath>using namespace std;int read(){ char ch=getchar();int f=0;原创 2017-08-30 14:57:34 · 235 阅读 · 2 评论 -
Codeforces Round #430 (Div. 2) D. Vitya and Strange Lesson
题目大意每次对数组异或一个值,求数组的mex(没在数组出现的最小非负整数)题解对所有数建一棵二进制trie树,记录修改的二进制位,贪心选择,如果修改的状态在原数组中没出现过,则之后的二进制位都可以与答案相同(即结果为0),如果当前节点子树没满,则可以与当前修改状态相同,否则只能与修改相反。(我好弱啊模板题调1小时)#include<iostream>#include<cstdio>#includ原创 2017-08-30 15:04:13 · 245 阅读 · 1 评论 -
Codeforces Round #433 (Div. 2) E. Boredom
题目大意问多少个两个点确定的矩形与给定区间有交。题解其实答案就是所有形成的矩形减没有交的矩形,那么由容斥原理,就是给定区间的4边的矩形减4个角,这个可以用主席树之类的维护。#include<map>#include<cmath>#include<queue>#include<cstdio>#include<cstring>#include<iostream>#include<algori原创 2017-09-08 08:50:51 · 281 阅读 · 0 评论 -
AIM Tech Round 4 (Div. 2) D. Interactive LowerBound
题目大意每个点的next为比它大的下一个数得位置,每次询问位置,告诉你valuei和next,求比x大的最小的数。题解考场上不会搞QAQ,2小时左右yy了个做法,然后疯狂wa on pretest 2,早上读读题才发现要判-1,改了还是wa 3,忽然发现自己输出了位置,gg。#include<iostream>#include<cstdio>#include<cstring>#include<原创 2017-08-25 08:27:58 · 708 阅读 · 0 评论 -
AIM Tech Round 4 (Div. 2) B. Rectangles
题目大意求选出在同一行或同一列颜色相同的格子,共有多少种选法。题解泥萌为什么都2^n什么的啊,我只会用组合数QAQ。 杨辉三角预处理组合数,设b[i]为第i行1的个数,则: ans+=∑i=1n∑j=1b[i]Cjb[i] ans+=\sum_{i=1}^n\sum_{j=1}^{b[i]} C_{b[i]}^j 列同理,注意去掉块数为1的。#include<iostream>#inclu原创 2017-08-25 08:17:55 · 439 阅读 · 0 评论 -
Codeforces Round #440 (Div. 1) B. Something with XOR Query
题目大意给一个排列p和每个数对应的位置b,你可以询问2n次,每次两个数i,j,返回p[i]^b[j],求最后如果询问n^2次都不能确定的排列个数。题解询问所有0,i和i,0,之后就能得知所有数的两两异或(a[i][j]=a[i][0] ^ a[0][j] ^a[0][0]),然后就枚举第一个数是什么,暴力计算即可。#include<iostream>#include<cstdio>#includ原创 2017-10-16 07:49:29 · 480 阅读 · 1 评论 -
Codeforces Round #440 (Div. 1) A. Maximum splitting
题目大意将一个数分解成若干合数的和,问最多分解成多少个。题解贪心用4,6,9来组合,%4=1需要一个9,%4=2需要一个6,%4=3需要一个6一个9,剩下都用4.#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>using namespace std;int read(){ char ch=原创 2017-10-16 07:20:32 · 215 阅读 · 0 评论 -
Codeforces Round #451 (Div. 2) A. Rounding
题目大意将数四舍五入…题解逗比题…#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>using namespace std;int read(){ char ch=getchar();int f=0; while(ch<'0'||ch>'9') ch=getchar(); w原创 2017-12-16 22:32:38 · 181 阅读 · 0 评论 -
Codeforces Round #451 (Div. 2) B. Proper Nutrition
题目大意求ax+by=c的一组非负整数解题解最开始没看数据范围就无脑exgcd发现有负数,然后才看到数据范围发现可以o(n)做…#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>using namespace std;int read(){ char ch=getchar();int f=0原创 2017-12-16 22:34:42 · 199 阅读 · 0 评论 -
Codeforces Round #451 (Div. 2) C. Phone Numbers
题目大意问有多少不同的人以及每个人有多少种不同号码,一个串是另一个后缀则算相同号码。题解先将相同的人的电话合并,然后暴力去重就行了。#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>using namespace std;int read(){ char ch=getchar();int f原创 2017-12-16 22:38:27 · 245 阅读 · 0 评论 -
Codeforces Round #451 (Div. 2) E. Squares and not squares
题目大意每次给一个数加一或减一,问最小操作次数使一半是完全平方数一半不是。题解显然只需要将多的一部分变成少的一部分,贪心选需要操作次数最少的。#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>#include<cmath>using namespace std;int read(){ ch原创 2017-12-16 22:41:07 · 250 阅读 · 0 评论 -
Codeforces Round #428 (Div. 2) E. Mother of Dragons
题目大意n个城堡间有些城堡有墙,将k点能量分给城堡,每个墙的防御值为u*v,求防御值最大是多少。 (n<=40,k<=1000)题解分析一下(猜一下)结论知,平均分给最大团最大。求最大用类似A*的Bron-Kerbosch算法。 证明: #include<iostream>#include<cstdio>#include<cstring>#include<algorithm>using原创 2017-08-28 13:18:13 · 277 阅读 · 0 评论 -
AIM Tech Round 4 (Div. 2) C. Sorting by Subsequences
题目大意每次选一个子序列,对它们进行排序,每个位置只能选1次,问最多选的次数。题解随便划一划就觉得是置换,然后就觉得很有道理,然后猜结论,然后xjb码一码,然后pp,然后ac。#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>using namespace std;int read(){ c原创 2017-08-25 08:23:07 · 448 阅读 · 0 评论 -
Codeforces Round #422 (Div. 2) A. I'm bored with life
题目大意给出两个数,计算阶乘的gcd。题解阶乘gcd其实就是较小数的阶乘。 复杂度o(min(a,b)).#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>using namespace std;int read(){ char ch=getchar();int f=0; whil原创 2017-07-03 21:54:33 · 195 阅读 · 0 评论 -
Codeforces Round #422 (Div. 2) B. Crossword solving
题目大意给出较短串s和较长串t,s可以对应在任何位置,最少有多少位置不匹配。题解暴力。。。。 (注意把边界去掉) #include<iostream>#include<cstdio>#include<cstring>#include<algorithm>using namespace std;int read(){ char ch=getchar();int f=0;原创 2017-07-03 21:59:06 · 215 阅读 · 0 评论 -
Codeforces Round #420 (Div. 2) A. Okabe and Future Gadget Laboratory
题目大意给出一个n*n矩阵,判断对于每个不等于1的数是否存在其所在行和所在列数相加等于这个数。example3 1 1 2 2 3 1 6 4 1 output:Yes 2=1+1, 2=1+1,3=2+1, 6=2+4.4=3+1.题解暴力枚举即可。#include<iostream>#include<cstdio>#include<cstring>#include<algor原创 2017-06-26 12:52:59 · 295 阅读 · 0 评论 -
Codeforces Round #420 (Div. 2) C. Okabe and Boxes
题目大意两种操作: 1.向栈中加入x元素。 2.删除栈顶元素。 需要修改几次顺序能使序列单调递增。题解模拟栈。 add操作向栈中加入元素。 remove操作若栈顶元素等于remove次数,弹出栈顶。否则把栈清空,答案加1. (博主实在太弱啦,竟然想用单调栈和最长上升子序列)#include<iostream>#include<cstdio>#include<cstring>#inc原创 2017-06-26 13:14:15 · 295 阅读 · 0 评论 -
Codeforces Round #420 (Div. 2) B. Okabe and Banana Trees
题目大意给出一次函数y=-x/m+b,它与x轴y轴围成平面中,每个点(x,y)贡献(x+y),在这个平面中画一个矩形,所围成点的最大价值和是多少。题解分别计算纵坐标减1后在范围外的点和新增加的点。(要用long long,比赛时被max函数坑wa了2发)。#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>原创 2017-06-26 13:04:01 · 428 阅读 · 0 评论 -
Codeforces Round #420 (Div. 2) D - Okabe and City
好像并不太懂啊,先挖坑。#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>using namespace std;const int inf=0x7f7f7f7f;int read(){ char ch=getchar();int f=0; while(ch<'0'||ch>'9'原创 2017-06-26 14:28:12 · 306 阅读 · 0 评论 -
Codeforces Round #420 (Div. 2) E. Okabe and El Psy Kongroo
博主蒟蒻,并不会这道题。转一篇比较好的题解。 传送门转载 2017-06-26 14:32:14 · 292 阅读 · 0 评论 -
Codeforces Round #421 (Div. 2) A. Mister B and Book Reading
题目大意一本c页的书,第一天看v0页,以后每天前一天多看a页,但最多一天看v1页,每天向前回看l页,多少天能看完。题解想起了小学奥数题。。。 模拟即可。#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>using namespace std;int read(){ char ch=getch原创 2017-06-28 01:35:18 · 231 阅读 · 0 评论 -
Codeforces Round #421 (Div. 2) B. Mister B and Angle in Polygon
题目大意给出正多边形边数n,一个角度a,选出三个顶点,使所成角度最接近a。题解由等弧所对的圆周角相等知·,一个顶点向其它所有顶点连一条线段,相邻两线段间夹角相等(定义为单位角),所以o(n)枚举选择单位角个数,判断是否更接近(似乎能o(1)做)。#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>#inc原创 2017-06-28 01:42:00 · 249 阅读 · 0 评论 -
Codeforces Round #426 (Div. 2) A. The Useless Toy
日常水题。模拟什么的随便搞。#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>using namespace std;int read(){ char ch=getchar();int f=0; while(ch<'0'||ch>'9') ch=getchar(); whil原创 2017-07-31 01:04:11 · 201 阅读 · 0 评论 -
Codeforces Round #426 (Div. 2) B. The Festive Evening
维护每个字母最先最后位置。#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>using namespace std;int read(){ char ch=getchar();int f=0; while(ch<'0'||ch>'9') ch=getchar(); while原创 2017-07-31 01:08:27 · 211 阅读 · 0 评论 -
Codeforces Round #426 (Div. 2) C. The Meaningless Game
题目大意两个人进行若干轮游戏,初始得分1,每轮一个人乘k,一个人乘k^2,问最终得分是否能为a和b.题解听说正解是二分,然而我o(n*素数个数(sqrt3(1e9) ))水过。 预处理sqrt3(1e9) 素数,算出每个素数对每个数的幂次,判断二元一次方程组是否有正整数解,最后看剩下值都大于sqrt(1e9)则no,否则两数有乘方关系就yes,否则no.#include<iostream>#in原创 2017-07-31 02:03:10 · 330 阅读 · 0 评论 -
Codeforces Round #425 (Div. 2)A. Sasha and Sticks
判断n/k奇偶性。#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>using namespace std;int read(){ char ch=getchar();int f=0; while(ch<'0'||ch>'9') ch=getchar(); while(ch>原创 2017-07-25 00:54:00 · 356 阅读 · 0 评论 -
Codeforces Round #425 (Div. 2)D. Misha, Grisha and Underground
题目大意给出一棵树,每次询问三个点,选一个点为终点,问重叠路径长度最大值。题解我强行链剖加线段树,(两个log有7*线段树巨大常数)1980ms跑过,什么?你过不了,我不知道,因为我再交也过不了,可能是noi考挂后rp++的原因。#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>#include<vec原创 2017-07-25 01:32:46 · 371 阅读 · 0 评论 -
Codeforces Round #425 (Div. 2)B. Petya and Exam
题目大意给出一个字符串和多组询问,‘?’代表一个好的字符,‘*’代表一个坏的字符串(可以是空串),能否让询问和字符串相同。题解由于‘*’只有一个,可以知道其代表的长度,暴力判断即可。(要注意询问比字符串长的情况)。#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>using namespace std;原创 2017-07-25 01:47:44 · 509 阅读 · 0 评论 -
AIM Tech Round 4 (Div. 2) A. Diversity
题目大意改变最小元素个数是总种类数大于K。题解贪心选就行了。注意特判。#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>using namespace std;int read(){ char ch=getchar();int f=0; while(ch<'0'||ch>'9') c原创 2017-08-25 07:52:32 · 263 阅读 · 0 评论 -
Codeforces Round #451 (Div. 2) D. Alarm Clock
题目大意删去最少的点使没有连续的长度m的一段有超过k个点。题解从前到后找,有一个时刻不符合条件就把当前点删掉,显然这样是最优的。#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>#include<queue>using namespace std;int read(){ char ch=g原创 2017-12-16 22:45:05 · 274 阅读 · 0 评论