Atcoder
OttsWang
这个作者很懒,什么都没留下…
展开
-
AtCoder Beginner Contest 083 D题
题目大意给定由’0’ ’1’组成的字符串,需要你求出一个长度,你可以选定区间进行翻转,翻转即是将这个区间内的0变为1,1变为0,这个区间长度必须大于等于所求的长度,保证在能使所有字符都变为0的前提下,所给的长度最大。#include#includeusing namespace std;int main(){ string str; while(cin>>str){原创 2017-12-27 20:47:03 · 324 阅读 · 0 评论 -
AtCoder Beginner Contest 084 C题
题目大意:一共有N个火车站,每个火车站给出该站第一班列车的出发时间S以及到下一站的时间C和列车出发的频率F,S能被F整除,频率的意思是出发时间只能在大于等于S的时间并且出发时间能被F整除,现在要求从第i站出发最少需要多少时间能到达第N站。分析:从第i站出发不用考虑出发时间,从第i+1站开始比较,到第j站的时间sum以及该站的出发时间Sj,如果sum小于等于Sj,那么乘客只能在Sj出发,如果su原创 2018-01-04 19:56:11 · 421 阅读 · 0 评论 -
AtCoder Petrozavodsk Contest 001 A
题目大意:输入两个整数X,Y(1,输出一个整数Z(1,保证Z是X的倍数并且不是Y的倍数,如果没有满足条件的Z,则输出-1,否则输出Z。思路:如果X是Y的倍数,则Z必定不存在,排除该情况之后,想到了最大公约数,设XY的最大公约数是g,把X分成两部分g*a,Y分成两部分g*b,a与b的最大公约数为1,想要所得数即是X的倍数并且不是Y的倍数,则保证gcd(X,Z)==X&&gcd(Y,Z)!原创 2018-02-04 20:49:34 · 296 阅读 · 0 评论 -
AtCoder Petrozavodsk Contest 001 B
题目大意:给出两组长度为n的数列a,b,你可以执行一种操作,选择数字i,j(1对应数组a和b的第i个元素和第j个元素,是ai加上2,bj加上1,可以执行此操作无数次,现在判断能否通过执行若干次达到让数组a,b每个元素都相等的状态。思路:可以将操作分为两部分,1.在a数组一个元素上加上2,2.在b数组一个元素上加上1,如果ai>=bi,操作2需要加上ai-bi次,否则操作1需要加上(bi原创 2018-02-04 20:51:05 · 448 阅读 · 0 评论 -
AtCoder Beginner Contest 087 D题
题目大意:给定n个点以及m个距离关系,判断这些距离关系是否同时成立。每次给出点l,点r,距离d,点r在点l的右边d处。分析:从给定关系的方式来看与并查集很相似,联想到并查集的路径压缩,压缩完之后可以实现多点对应一点的状态,并且时间复杂度也很小。定义一个数组D,数组下标为i的元素是点i相对于该点的根的相对位置,如果该点的根是其本身,那么D[i]=0。合并的话只要把根节点的相对距离更改即可,当需要用到...原创 2018-02-11 01:49:12 · 294 阅读 · 0 评论 -
AtCoder Beginner Contest 105 D - Candy Distribution
D - Candy Distribution题目链接题目大意:给出包含n个整数的数组,统计任意区间内的数之和是否能被m整除的区间的个数。分析:看到这题,就想到了偶数减偶数还是偶数,以致于写的时候也是这么写了,回过头看见有个m才想起是模m,也是一样的,根据同余定理,(a-b)%m=a%m-b%m,显然要用...原创 2018-08-13 19:12:41 · 306 阅读 · 0 评论 -
AtCoder Beginner Contest 123 D
题目链接题目大意:给出a,b,c三个数组,数组长度分别为x,y,z(1<=x,y,z<=1000),从这三个数组各挑选一个元素相加可以有x*y*z种可能,现在让你输出前k(k<=min(3000,x*y*z))个大的情况。分析:如果不给出限制的话,就直接遍历一遍,但是x*y*z现在明显是会超时的,但是k是小于3000的,所以这道题的解决方法是广搜。首先,确定起点,...原创 2019-04-08 10:38:02 · 370 阅读 · 0 评论