Codeforces、Codeforces gym
Nemaleswang
ACM退役狗一只
展开
-
Codeforces Round #408 (Div. 2) A. Buying A House
题目链接:Buying A House题意很简单,给你n,m,k,代表总共的房子数,妹子住的房子位置,k元钱,然后是n个数,0代表这个房子有人住,否则代表这个房子的价格,问你能在k元里买到的离妹子最近的房子距离妹子所在地有多远,两房子之间距离为定值10m。从前往后扫一遍就可以了,我的做法是从妹子所在的房子往后扫找最小距离,再往前扫找最小距离,两个再取最小就可以了#include #inclu原创 2017-04-12 15:45:20 · 294 阅读 · 0 评论 -
Codeforces Beta Round #51 D - Beautiful numbers
题目链接:Beautifuls numbers题目大意:给一个区间,问这个区间的漂亮数有多少,漂亮数是指这个数能被这个数每一非零数位的数字给整除题目思路:好题,首先我们可以很显然的知道,对于一个数来说,每一位都能整除这个数,那么我们可以知道的是这个数一定是这所有非零整数的lcm值,那么这个时候我们可以把问题简化为求这个数是不是所有数的lcm值,那么我们每次去做数位dp的时候可以很轻松的求出来lcm,原创 2017-08-20 18:01:26 · 302 阅读 · 0 评论 -
Codeforces Round #426 (Div. 2) C. The Meaningless Game
题目链接:The Meaningless Game题目大意:有两个数,初始值都是1,现在他们可以互相博弈很多轮,赢的人可以在原本值得基础上乘上一个k*k,输方可以乘上一个k,k的值每一轮都可以不同,然后给你一个n和m,代表很多轮之后他们的得分,问这个得分是否合法题目思路:很容易可以想到每一轮得分乘积的贡献都是一个k* k k,那么很多轮后就是,k1 k1 * k1 * k2 * k2 k2 … *原创 2017-07-31 17:36:43 · 247 阅读 · 0 评论 -
Codeforces Round #426 (Div. 2) B. The Festive Evening
题目链接:The Festive Evening题目大意:给你一个n和k,代表一个长度为n的字符串,字符串只包含大写字母,26个大写字母代表26扇门,每扇门要等最后一个通过这扇门的客人走了之后才能关门,否则一定得有一个守卫在门前,关门后这个守卫可以到其他们去,问一共k个守卫能不能完成防守得目标题目思路:记忆一下门最后关的时候是第几个客人,然后如果这个门没有守卫,外面首先要加一个守卫,然后判断一下守卫原创 2017-07-31 16:08:19 · 203 阅读 · 0 评论 -
Codeforces Round #426 (Div. 2) A. The Useless Toy
题目链接:The Useless Toy题目大意:给你两个方向,然后给你一个n,问你是逆时针旋转n次从一个方向到第二个方向,还是顺时针旋转n次从一个方向到第二个方向,如果都可以或者都不可以,输出undefined题目思路:直接模拟就好#include <cstdio>#include <cmath>#include <cstring>#include <cstdlib>#include <i原创 2017-07-31 16:03:34 · 241 阅读 · 0 评论 -
Codeforces Round #425 (Div. 2) B. Petya and Exam
题目链接:Petya and Exam题目大意:首先有两个字符串,一个字符串代表好字符串,这里面的每个字符都是好的(只包含小写字母),然后有一个原串,这个原串中可能包含有?和* 。?可以替换任意一个好字符,*可以替换空或者一个全由坏字符组成的串,接下来有t组数据,每组一个字符串,问这个字符串能不能通过上面的规则实现原串到模式串的替换题目思路:直接模拟就好,如果没有* 直接暴力替换,有的话从前往后替换原创 2017-07-31 16:00:32 · 261 阅读 · 0 评论 -
Codeforces Round #425 (Div. 2) A. Sasha and Sticks
题目链接:Sasha and Sticks题目大意:两个人博弈,一次走k步,总共有n步,如果一个人不能走了,则他输了,问先手输赢题目思路:水题,因为轮番走,直接判断n/k的奇偶性就可以了,n%k对结果并没有影响#include <cstring>#include <cstdio>#include <cstdlib>#include <queue>#include <algorithm>#i原创 2017-07-31 15:52:14 · 243 阅读 · 0 评论 -
Educational Codeforces Round 25 E. Minimal Labels
题目链接:Minimal Labels题目大意:给你一个DAG,n个点,m条边,现在要求你用1-n这n个数对每个点标记,如果存在一条从u到v的边,那么v的标记需要比u大,结果输出1-n每个点的标记,并且要求字典序最小题目思路:我们可以很轻松的想到我们首先要从出度为0的点开始标记,因为出度为零,不出边,那么让他最大当然是没问题的,然后就是因为要字典序最小,所以出度为零的好几个,肯定要让值最大的数标记最原创 2017-07-18 19:08:00 · 315 阅读 · 0 评论 -
Educational Codeforces Round 25 D. Suitable Replacement
题目链接: Suitable Replacement题目大意:有一个字符串s,包含有小写字母和问号,问号可以任意替换,现在s可以任意调整顺序,现在要求s中包含最多的子串t,不能交叉题目思路:我们可以知道位置都没有关系,我们只需要把t这个字符串往s里面扔就好了,扔的时候如果这个字符s中有多的就先不扔,具体看代码就能懂 #include <bits/stdc++.h>using namespace s原创 2017-07-18 18:44:05 · 479 阅读 · 0 评论 -
Codeforces Round #257 (Div. 2) B. Jzzhu and Sequences
题目链接:Jzzhu and Sequences题目大意:给你一个递推式,求f(n)%1e+7题目思路:先要把给的递推式转化一下,然后求余的时候记得+MOD再求余就好了#include <map>#include <set>#include <queue>#include <stack>#include <cmath>#include <vector>#include <cstdio>原创 2017-08-22 11:18:38 · 265 阅读 · 0 评论 -
Codeforces Round #118 (Div. 1) A. Plant
题目链接:Plant题目大意:给你一些图形,问第n个图形里面有几个上三角形 题目思路:下一张图的上三角形和下三角形个数可以由上一张图得到,具体为upn=3∗upn−1+downn−1up{_n} = 3*up{_{n-1}}+down{_{n-1}}和downn=3∗downn−1+upn−1down{_n} = 3*down{_{n-1}}+up{_{n-1}},然后构造矩阵就好了#includ原创 2017-08-22 20:36:25 · 363 阅读 · 0 评论 -
Educational Codeforces Round 39
题目链接: Educational Codeforces Round 39 A. Partition 题目大意:有一个集合,里面有一些数字,现在要你将这些数字分成两个集合B和C,然后用B里面的数字总和减掉C的数字总和,问这个结果最大是多少题目思路:正负数划分开就好了#include <map>#include <set>#include <sta...原创 2018-03-11 13:08:24 · 268 阅读 · 0 评论 -
Educational Codeforces Round 36
题目链接: Educational Codeforces Round 36 A. Garden 题目大意:有n个浇水长度为a[i]的浇水壶和一个长度为m的,现在只能选一个水壶,并且水壶浇水不能交叉,不能超出花园长度,问最小需要用这个水壶浇多少次题目思路:题目转化为找出最大的并且存在n个数里面的m的因子,直接找就好了#include <map>#include <...原创 2018-01-17 18:13:37 · 260 阅读 · 0 评论 -
2016-2017 ACM-ICPC CHINA-Final
题目链接:A题题目大意:问有多少个小于2n2^n的形式是2k−12^{k}-1的能整除7的数字的个数题目思路:7的二进制是111,而2k−12^{k}-1的二进制是k个1,所以只需要k能被3整除就好了#include <map>#include <set>#include <cmath>#include <queue>#include <stack>#include <vector>#i原创 2017-11-22 17:33:46 · 1261 阅读 · 1 评论 -
codeforces Educational Codeforces Round 32 E. Maximum Subsequence
题目链接:Maximum Subsequence题目大意:给你n个数,现在需要你从这n个数里面选一些数出来使得这些数的和对m求余后得到的数最大,问这个能得到的最大的数题目思路:n最大为35,直接搜肯定是要炸的,所以我们可以折半搜索一下,然后两边得到的数二分去找一下最大的数就可以了,复杂度为2(n/2)log(n/2)2^{(n/2)}log(n/2)#include <map>#include原创 2017-11-20 20:00:24 · 277 阅读 · 0 评论 -
Codeforces Round #433 (Div. 2) D. Jury Meeting
题目链接:Jury Meeting题目大意:有0到n这样n+1个城市,有m个航班,给出出发的时间(当天出发,当天到),出发的城市,到达的城市(要么是从0到某城市,要么是从某城市到0),后面是花费,然后除了0之外的所有城市都有1个科学家,现在所有家要一起在0呆k天,然后回到自己所在的城市,问最小花费题目思路:贪心去做,我们先去找出发的最小花费,再找到达的最小花费,两个相加,预处理一下前缀和就好了(代码原创 2017-09-07 20:46:00 · 308 阅读 · 0 评论 -
Codeforces Round #433 (Div. 2) C. Planning
题目链接:Planning题目大意:有n架飞机,所有的飞机至少得在k+1分钟后才能飞行,第i架飞机每分钟延迟的费用是a[i],每分钟只能起飞一架飞机,问最小延迟费用是多少题目思路:按样例模拟,我们可以看到对于延迟花费最大的,我们应该让他在最接近的时候走,然后贪心做,用过的时间不能再用,所以要扔出去,用一个set维护就好了,思路比较乱,看代码一眼就能看懂了#include <map>#include原创 2017-09-07 20:28:20 · 264 阅读 · 0 评论 -
Codeforces Round #433 (Div. 2) B. Maxim Buys an Apartment
题目链接:Maxim Buys an Apartment题目大意:给你一个n和k,n代表总共有n个房子排成一排,k代表有k个房子有人居住,但是不知道具体位置,与有人居住的房子相邻并且这个房子是空的,这个房子就是ok的,问最少和最多有多少个房子是ok的题目思路:最少就是前面的全部按着,只有1个房子是空的(没满的情况下),最多就是按照一个有人居住的房子在中间,左右两边都是空的,这样是最大利用的,然后模拟原创 2017-09-07 20:22:18 · 328 阅读 · 0 评论 -
Codeforces Round #433 (Div. 2) A. Fraction
题目链接:Fraction题目大意:给你一个n,计算最大的a/b使得a与b互质且a < b,a+b = n题目思路:枚举就好了,a要尽量大,b尽量小就好了,在n/2附近去取#include <map>#include <set>#include <cmath>#include <queue>#include <stack>#include <vector>#include <cstdio原创 2017-09-07 20:17:12 · 300 阅读 · 0 评论 -
Codeforces Round #424 (Div. 2) D. Office Keys
题目链接:Office Keys题目大意:有一条直线上有一些客户和钥匙,然后有一个终点,然后每个客户至少捡到一把钥匙再到终点,一把钥匙只能一个人用,现在所有的客户都拿到了一把钥匙并且到了终点,这些所有客户里面时间有一个最大值,现在要求你使得这个最大值最小,问这个最小值是多少题目思路:我们可以知道最后的钥匙和客户位置一定是同样递增的,那么这时候我们只需要取尽量左边的位置就好了,这时候我们就可以二分这个原创 2017-07-16 18:31:46 · 355 阅读 · 0 评论 -
Codeforces Round #424 (Div. 2) C. Jury Marks
题目链接:Jury Marks题目大意:有n个评委的打分,可正可负,但是我们不知道初始值是多少,然后给出你k个分数,这k个分数是在某个评委打完分之后当前这位选手的得分,要求这k个分数都是正确的,然后需要你判断有多少个初始分可以满足这个条件,全部无序题目思路:因为所有的k个分数必须得都合理,所以第一个分数必须得合理,那么我们就枚举第一个分数为某个评委打分后的分数,那么我们可以通过评委分的前缀和得到初始原创 2017-07-16 18:18:17 · 395 阅读 · 0 评论 -
Educational Codeforces Round 5 C - The Labyrinth
题目链接:The Labyrinth题目大意:给你一张图,里面只有”“和“.”两种符号,然后叫你去看”“附近有多少个”.”并加上一,既是找周围与这个”“联通的”.”有多少个,并把这个”“变成那个值加一,”.”保持不变题目思路:首先我们考虑写普通做法,既找到一个”“然后就开始搜,我们发现数据范围为1000*1000,那么可见直接爆搜是不行的,所以我们可以预先保存一下每个联通块里面”.”的数量,然后直接原创 2017-07-11 23:01:35 · 282 阅读 · 0 评论 -
Codeforces Round #411 (Div. 2) D. Minimum number of steps
题目链接:Minimum number of steps题目大意:给你一段字符串,只包含a,b两种字符,如果碰到ab,就将它变为bba,问这样的变换需要几次题目思路:我的做法比较不清真,但是能AC。统计每个b左边的a有多少个,然后就是从2的0次方加到2的n-1次方,每个b的贡献是这么多,把所有b的贡献累加,就可以了,算贡献的时候预处理一下2的多少次方,然后预处理一下从2的0原创 2017-05-05 17:53:10 · 260 阅读 · 0 评论 -
Codeforces Round #411 (Div. 2) C. Find Amir
题目链接:Find Amir题目大意:给你一个n,城市编号从1到n,然后让你建路,两个点之间建一条路需要的花费是(i+j)%(n+1),然后叫你去建路,使得总花费最小题目思路:直接绕着点转圈就好了,比如n等于10的时候,先连1-10,然后10-2,然后2-9,一直连,直到所有的点连完,然后判一下奇偶就可以了#include using namespace std;ty原创 2017-05-05 17:15:21 · 248 阅读 · 0 评论 -
Codeforces Round #411 (Div. 2) B. 3-palindrome
题目链接:B. 3-palindrome题目大意:给出字符串长度n,你可以用a b c三个字符构造名字。要求,c尽量少用,且每三个连续的字符不能构成回文串。题目思路:直接循环输出a,a,b,b就好了,没有c,也不会出现3个字符的回文串#include using namespace std;typedef long long ll;int main(){原创 2017-05-05 17:04:36 · 405 阅读 · 0 评论 -
Codeforces Round #411 (Div. 2) A. Fake NP
题目链接:Fake NP题目大意:给你一个l和r,算这个区间里面能被整除的个数最多的值,如果有多个,输出即可题目思路:简单题,如果l等于r,直接输出l就可以了,否则直接输出2,证明,如果l等于r,输出l一定对,否则,l到r这个区间里面的偶数如果大于等于奇数的个数,直接输出2,否则其实也是2,因为奇数的除数不会都为一个数,那么被2整除的数一定比其它的多#include u原创 2017-05-05 16:54:19 · 301 阅读 · 0 评论 -
Codeforces Round #409 (Div. 2) B. Valued Keys
题目链接:Valued Keys题目大意:给你两个长度相同的串x和z,问是否存在一个y串使得min(x,y) = z,min(x,y)代表求出两个串里面a[i]和b[i]最小的那个题目思路:实际上只需要看z每个字符串是不是都小于等于x的的每个字符串,如果不是直接-1,否则直接输出z就可以了#include using namespace std;typedef long long原创 2017-04-17 09:20:58 · 383 阅读 · 0 评论 -
Codeforces Round #409 (Div. 2) A. Vicious Keyboard
题目链接:Vicious Keyboard题目大意:给一串只包含V和K的字符,最多替换一次V为K或者K为V,问字符串中最多能出现多少次VK题目思路:这题都没能一次AC啊,真菜,直接算出来最开始有多少个V看,然后遍历整个字符串,把V替换成K,K替换成V再算,每次求最大值就可以了#include using namespace std;typedef long long ll;int原创 2017-04-17 08:47:17 · 756 阅读 · 0 评论 -
Codeforces Round #408 (Div. 2) B. Find The Bone
题目链接:Find The Bone题意是给你n,m,k三个数,n代表有n个位置,m代表有m个分部在1到n的洞,k代表有k种操作,然后给你m个洞的位置,然后给你k对数,表示交换这两个位置的东西,然后有一个球,初始位置为1,问最后的时候这个球在哪个位置,如果某一个时刻这个球在洞里,就不能再动了。我的做法是把所有的洞存在一个set里面,然后每次操作之前判断一下球是不是在洞里,如果不在再看交原创 2017-04-12 15:54:12 · 352 阅读 · 0 评论 -
Educational Codeforces Round 5 D - Longest k-Good Segment
题目链接:Longest k-Good Segment题目大意:给你一个长度为n的序列,问你里面不同的数不超过k个的最长序列是什么,给出左端点和右端点的值题目思路:由于范围有点大,双指针扫一下就好#include <bits/stdc++.h>using namespace std;const int maxn = 1e6+10;int n,k,a[maxn],u[maxn],ans,l,r;in原创 2017-07-11 23:28:10 · 344 阅读 · 0 评论 -
Codeforces Round #423 (Div. 2) A. Restaurant Tables
题目链接:Restaurant Tables题目大意:有一些吃饭的小组,要么一个人,要么两个人,而饭店里面也只有两种桌子,一种只能一个人坐,另一种是两个人坐,对于一个人的情况,他需要先坐一个人座位的空座,如果没有就坐两个人的空座,如果也没有就坐两个人的座位但是其中有一个座位有人坐,如果还没有这个人就会被拒绝,两个人只能坐两个人的桌子,否则就会被拒绝题目思路:直接按照题意走就没有问题了,a代表一个人的原创 2017-07-12 22:04:06 · 269 阅读 · 0 评论 -
Educational Codeforces Round 25 C. Multi-judge Solving
题目链接:Multi-judge Solving题目大意:在codeforces上有n个不同难度的题目需要你去解决,现在你在其他OJ上已经解决的最大难度的题目为k,你要解决一个难度为s的问题的前提条件是你当前解决的所有问题的最大难度d要大于等于s,现在cf上这些题目你需要全部去解决,现在问你要通过其他OJ解决几道问题才行题目思路:当前的a[i]个问题中,如果这个问题难度a[i]*2小于k,那么k =原创 2017-07-18 14:19:59 · 565 阅读 · 0 评论 -
Educational Codeforces Round 25 B. Five-In-a-Row
题目链接:Five-In-a-Row题目大意:现在有X和O两种代表黑方和白方的两种棋子,.代表空白格,可以下,当前是黑方的下棋,问黑方这一次能不能马上赢掉,五子棋规则题目思路:按照五子棋下棋方式去模拟就好了#include <bits/stdc++.h>using namespace std;char mp[15][15];bool check(int x,int y){ int cnt =原创 2017-07-18 14:10:55 · 287 阅读 · 0 评论 -
Educational Codeforces Round 25 A. Binary Protocol
题目链接:Binary Protocol题目大意:有一种特殊的二进制,1代表一个贡献,如3代表111,5代表11111,每个数字之间用0隔开,如506就是111110111111,有一种特殊的情况就是100,就代表两个0分割开的数字是0,没有贡献题目思路:我们碰到1,贡献加1,碰到0,输出这个贡献,贡献清零,需要注意的是最后还要继续输出这个贡献,因为最后一位数后面没有零#include <bits/原创 2017-07-18 14:05:35 · 370 阅读 · 0 评论 -
Codeforces Round #424 (Div. 2) B. Keyboard Layouts
题目链接:Keyboard Layouts题目大意:给你两个长度为26的字符串,然后给你一个原串,原串是第一个字符串种的顺序,用第二个字符串中的顺序替换就好,大写仍然保留题目思路:直接做就好了#include <bits/stdc++.h>using namespace std;int main(){ char ch,s1[30],s2[30]; string str; fo原创 2017-07-16 17:25:54 · 265 阅读 · 0 评论 -
Codeforces Round #424 (Div. 2) A. Unimodal Array
题目链接:Unimodal Array题目大意:给你一串数,然后要你判断他是不是单峰的,定义为先递增,然后最大值可以友多个,然后递减,除了最大值,其他值不能出现一次以上题目思路:直接模拟就好了,不要xjb判断,容易fst,最好的办法是按照题目的要求写三个段的判断就好了#include <bits/stdc++.h>using namespace std;const int maxn = 1005;原创 2017-07-16 17:13:44 · 441 阅读 · 0 评论 -
Codeforces Round #423 (Div. 2) D. High Load
题目链接:High Load题目大意:有n个点,有k个点只能连接一条边,其它随意,然后你的图里面有最远的距离,这个最远的距离必须是所有符合条件的图里面最小的,给出最小的最远距离和图的所有的边题目思路:很巧妙的一个题,我们可以知道有k个点一定在图的最外面,而且这k个点里面的每一层一定是k个,所以我们可以想到去构造一下,首先里面有一个点,然后连接k个点,这k个点向外扩散就好,具体思路看代码应该就懂了#i原创 2017-07-12 22:23:01 · 342 阅读 · 2 评论 -
Codeforces Round #423 (Div. 2) C. String Reconstruction
题目链接:String Reconstruction 题目大意:有一个字符,但是我们不知道那是什么,现在我们有t个条件,每个条件里面有一个字符串,然后k个起始位置,代表从这个起始位置开始有这样的一个字符串,然后让你求出字典序最小的符合要求的字符串题目思路:直接暴力当然是不可行的,数据范围是1e6,那么我们可以想到KMP的匹配,重复的不需要去计算,那么我们就不需要去计算了,因为是递增的k个数,所以我原创 2017-07-12 22:15:15 · 283 阅读 · 0 评论 -
Codeforces Round #423 (Div. 2) B. Black Square
题目链接:Black Square题目大意:给你一张有B和W的面积为n*m的图,问你能不能通过将W染成B的方式使得含有B的组成一个正方形,如果不行输出-1题目思路:找到必须组成的边长,然后看面积大不大于n*m,大于就-1,否则就用长方形面积减去已经有的B个数,就是答案#include <bits/stdc++.h>using namespace std;const int maxn = 105;i原创 2017-07-12 22:09:25 · 304 阅读 · 0 评论 -
Codeforces Round #477 (rated, Div. 2)
题目链接: Codeforces Round #477A. Mind the Gap 题目大意:有n个着陆时间,现在要你去插入一个起飞时间,着陆和起飞都需要一分钟,并且插入之后所有的起飞和着陆时间之间的时间差至少得为s,问能插入的最早的时间点是多少题目思路:直接排完序之后贪心去找就好了,时间差应当在s+1之外,特判一下第一次之前和最后一次着陆时间就好了#include <map...原创 2018-04-30 22:33:11 · 262 阅读 · 0 评论