
atcoder
OlER小昆
这个作者很懒,什么都没留下…
展开
-
Atcoder beginner contest 129D Lamp
https://atcoder.jp/contests/abc129/tasks/abc129_d题意:在一个由“.”和“#”构成的图中找一个点使它在上下方向和左右方向能到达的“.”最多(“#”不能穿过)。思路:先预处理出每一个点左右和上下方向能到的数量,在暴力枚举每一个点,取最大值。貌似难度不大#include<cstdio>#include<string>#i...原创 2019-06-27 20:22:29 · 293 阅读 · 0 评论 -
Atcoder beginner contest 113D Number of Amidakuji
https://atcoder.jp/contests/abc113/tasks/abc113_d可以直接dp解决,不过要先2w暴力找出转移的系数。#include<cstdio>#include<string>#include<cstring>#include<utility>#include<cmath>#include...原创 2019-06-28 12:34:04 · 264 阅读 · 0 评论 -
Atcoder beginner contest 112D Partition
https://atcoder.jp/contests/abc112/tasks/abc112_d可以找出m所有的因数x,若m/x>=n,即把m分成m/x组,每组数值为x,这些组能填满n个组,那么x就可以是数组的公因数。每次满足都更新答案。#include<cstdio>#include<string>#include<cstring>#incl...原创 2019-06-28 12:39:44 · 149 阅读 · 0 评论 -
Atcoder beginner contest 111D Robot Arms
https://atcoder.jp/contests/abc111/tasks/arc103_b判错很好办,把每一次横纵坐标加起来,如果同号就对,异号就错。当m=1,a1=1时,可以到达(1,0),(0,1),(-1,0),(0,-1)。m=2时,a={1,2},那么相当于把m=1时能到的区域往上下左右各移2位,组成4个小正方形,只看整点,那么新的区域就是一个对角线一半长3,中心在原点的菱形。...原创 2019-06-28 12:50:15 · 374 阅读 · 0 评论 -
AtCoder Beginner Contest 083C Multiple Gift
https://atcoder.jp/contests/abc083/tasks/arc088_a题意:有一串数,每个数都在x,y之间,严格升序,且每个数都是前一个数的倍数。求这样的序列最大长度。思路:可以直接模拟。第一个数为x,第二个数为2x,第三个为2*2x…每个数是上一个数乘2,到值大于y时输出答案。...原创 2019-07-04 07:45:14 · 294 阅读 · 0 评论 -
AtCoder Beginner Contest 084C Special Trains
https://atcoder.jp/contests/abc084/tasks/abc084_c题意:n个车站,相邻的2个车站有单程车,从i到i+1用Ci分钟,第一趟Si分钟时发,之后每Fi分钟发一辆。Fi是Si的因数。求从1到n每个点出发到n的最少时间。思路:n比较小,可以暴力。先枚举出发点1~n-1(从n出发时间一定是0),在计算从这个点出发到各个点的最小时间,输出到n的最小时间就行了。...原创 2019-07-04 07:54:18 · 271 阅读 · 0 评论 -
AtCoder Beginner Contest 085C Otoshidama
https://atcoder.jp/contests/abc085/tasks/abc085_c题意:钞票面额只能是10000,5000,1000,有n张钞票组成了y元,求是否可能,若可能就输出一组可行方案。思路:先把所有面额除以1000,方便计算。枚举10000面额的数量,得到剩余的钞票总面额a和张数z。设5000的数量是x,则有5x+1(z-x)=a。整理得x=(a-z)÷4。若x是整数...原创 2019-07-04 08:07:04 · 132 阅读 · 0 评论 -
AtCoder Beginner Contest 086C Traveling
https://atcoder.jp/contests/abc086/tasks/arc089_a题意:一个点从(0,0)出发,在ti秒时要到(xi,yi),每一秒只能上下左右走一格。是否能做到。思路:记录上一次点的位置和时间,求出上一个点走到这个点的最少时间,若时间差大于最少时间且时间差比最少时间多的时间是2的倍数。若满足则继续判断,若不满足则输出No,退出。#include<cst...原创 2019-07-04 08:29:02 · 211 阅读 · 0 评论 -
AtCoder Beginner Contest 088C Takahashi's Information
https://atcoder.jp/contests/abc088/tasks/abc088_c题意:输入1个3*3矩阵已知(i,j)=ai+bj,判断是否存在a1,a2,a3,b1,b2,b3满足上述关系。思路:b2-b1=(1,2)-(1,1)=(2,2)-(2,1)=(2,2)-(2,1),同理b3-b2,a2-a1,a3-a2也可以进行判断。1个if就过了。#include<...原创 2019-07-04 15:40:55 · 185 阅读 · 0 评论 -
Atcoder beginner contest 087C Candies
https://atcoder.jp/contests/abc087/tasks/arc090_a题意:1个2×n的格子,从左上角出发,每次只能往下或往右走,一直到右下角。求经过的格子中,数值的总和最大值。思路:直接dp#include<cstdio>#include<string>#include<cstring>#include<utili...原创 2019-07-04 15:42:26 · 156 阅读 · 0 评论 -
Atcoder beginner contest 089C March
https://atcoder.jp/contests/abc089/tasks/abc089_c题意:输入n个人的名字,找出满足一下条件的三元组:每一个人名字都以m,a,r,c,h开头,没有人名字开头字母是重复的。思路:分别统计出名字以m,a,r,c,h开头的人数,记为a,b,c,d,e,答案就是abc+abd+abe+acd+ace+ade+ bcd+bce+bde+cde(乘号省略)。注...原创 2019-07-04 15:57:54 · 227 阅读 · 0 评论 -
AtCoder Beginner Contest 090C Flip,Flip, and Flip......
https://atcoder.jp/contests/abc090/tasks/arc091_a题意:在nm的网格上每格一张卡,每个格子操作1次,每次操作把他自己和相邻的格子都翻转一次,开始时每个卡都朝上,问操作后有几张朝下。思路:每个格子被翻的次数等于与它相邻的格子的数量加1。先考虑n,m都是1,那么输出1。如果有一个是1,就输出另一个数-2,如果都大于2,那么输出(n-2)(m-2),因...原创 2019-07-04 16:49:40 · 198 阅读 · 0 评论 -
Atcoder beginner contest 114D 756
https://atcoder.jp/contests/abc114/tasks/abc114_d首先先找出一种方法能由a,b的一些与因数有关的信息推出a×b的信息。比如a分解质因数后a=p1x1+p2x2+…pnxn,那么a的因数个数就有(x1+1)×(x2+1)×(x3+1)…×(xn+1)个。75=5×5×3=25×3=15×5=75。那么先把1-n全部分解质因数,统计每个质数出现的个数(...原创 2019-06-28 10:02:39 · 247 阅读 · 0 评论 -
Atcoder beginner contest 115D Christmas
https://atcoder.jp/contests/abc115/tasks/abc115_d先从1到n找出第一个层数比X大的级别a,之后级别再高对答案的影响只有最前面那几个“B”,那就是暴力找a中的前m-(n-a)层里有几个肉,如果正在查找的个数包含一些整层还可以直接调用之前算的肉层数。#include<cstdio>#include<string>#incl...原创 2019-06-28 08:40:26 · 191 阅读 · 0 评论 -
Atcoder beginner contest 116D Various Sushi
https://atcoder.jp/contests/abc116/tasks/abc116_d这个题可以用贪心。第一种情况是把美味值最大的k个加起来,第二种是取的种类数越多越好。在种类数增多的过程中也要更新答案。注意long long。#include<cstdio>#include<string>#include<cstring>#include...原创 2019-06-28 08:26:14 · 557 阅读 · 0 评论 -
Atcoder beginner contest 128D - equeue
https://atcoder.jp/contests/abc128/tasks/abc128_d思路:n,k都很小,可以暴力。先枚举用到的操作次数0-k,设此时操作次数为x。再枚举取的个数0-x,设取数的个数为y,经过推算可以发现可以取到两边的前(x+y)/2个(左边取最左边的a个,右边取最右边的b个,则a+b=(x+y)/2),且两边分别计算时也满足。当(x+y)/2不是整数时说明次数没用完...原创 2019-06-27 20:52:08 · 311 阅读 · 0 评论 -
Atcoder beginner contest 127D Integer Cards
https://atcoder.jp/contests/abc127/tasks/abc127_d思路:首先可以发现可以通过巧妙的选择方法,使2次操作较换位置后结果依然最大。那么先把操作按Ci从大到小排序,每次枚举i找有几个数满足它们的值都满足比Ci小。若有k个数满足,k>Bi时,找最小的Bi个的值转成Ci;k<=Bi时,把那k个数的值转成Ci,退出(更改完后一定满足所有a值都不小于...原创 2019-06-27 21:05:07 · 394 阅读 · 0 评论 -
Atcoder beginner contest 126D Even Relation
https://atcoder.jp/contests/abc126/tasks/abc126_d思路:简单的模拟。从一个点出发,与他相连的边长是奇数,那个点的颜色就与这个不一样,否则一样。dfs一下就行了。#include<cstdio>#include<string>#include<cstring>#include<utility>...原创 2019-06-27 21:12:39 · 181 阅读 · 0 评论 -
Atcoder beginner contest 125D Flipping Signs
https://atcoder.jp/contests/abc125/tasks/abc125_d思路:可以发现负数的位置可以转移,总数可以不变,可以-2。所以负数个数是偶数时把绝对值加起来就行。个数是奇数时减去绝对值最小的数的绝对值,加上其他的数就行了。#include<cstdio>#include<string>#include<cstring>...原创 2019-06-27 21:23:22 · 222 阅读 · 0 评论 -
Atcoder beginner contest 124D Handstand
https://atcoder.jp/contests/abc124/tasks/abc124_d每次可以将连续一部分变相反。先统计出共有几部分,每一部分有相同数字组成,相邻两部分的数字不相同。可以发现每次最多取2k+1个组。然后枚举算一下最大的和是多少。细节处理一下就好。#include<cstdio>#include<string>#include<cst...原创 2019-06-27 21:50:55 · 372 阅读 · 0 评论 -
Atcoder beginner contest 123D Cake 123
https://atcoder.jp/contests/abc123/tasks/abc123_d打无脑暴力肯定不行,只好打有脑暴力。先暴力算出A和B中的所有可能,取前k个,再用这k个跟C中暴力求所有可能,再取前k个。#include<cstdio>#include<string>#include<cstring>#include<utility...原创 2019-06-27 22:03:27 · 365 阅读 · 0 评论 -
Atcoder beginner contest 122D We like AGC
https://atcoder.jp/contests/abc122/tasks/abc122_d可以用dp解决。当前能不能这个字母只于前3个字母有关。设dp[i][a][b][c]为长度为i时第i-3个字母是c,第i-2个字母是b,第i-1个字母是a时的数量。则可以枚举i,a,b,c和当前的字母d,abcd只有5种情况不成立,剩下的都可以加起来。5种分别是:?AGC,?ACG,?GAC,A?G...原创 2019-06-27 22:31:10 · 272 阅读 · 0 评论 -
Atcoder beginner contests 121D XOR World
https://atcoder.jp/contests/abc121/tasks/abc121_d可以先计算出g(n)=1 xor 2 xor 3…xor n,f(a,b)=g(a-1)xor g(b)。打表可以发现g(n)的规律:n%4=0时g(n)=n。n%4=1时g(n)=1。n%4=2时g(n)=n+1。n%4=3时g(n)=0。注意开long long。#include<cs...原创 2019-06-27 22:46:54 · 171 阅读 · 0 评论 -
Atcoder beginner contest 120D Decayed Bridges
https://atcoder.jp/contests/abc120/tasks/abc120_d可以用并查集解决。倒着操作,往里加边。输出的答案为总的点对的数量减去每一个集合中点对的数量之和。模拟就过了。#include<cstdio>#include<string>#include<cstring>#include<utility>#...原创 2019-06-27 23:02:33 · 247 阅读 · 0 评论 -
Atcoder beginner contest 119D Lazy Faith
https://atcoder.jp/contests/abc119/tasks/abc119_d先用lower_bound或upper_bound找出在查找的点左右最近的shrines和temples,共4个,设他们为Ls,Rs,Lt,Rt。各访问一个就有这几种情况:(Ls,Lt),(Rs,Lt),(Ls,Rt),(Rs,Rt) 。访问同一侧就取距离的max,访问不同侧就要考虑来回,距离小的加...原创 2019-06-28 07:36:49 · 333 阅读 · 0 评论 -
Atcoder beginner contest 118D Match Matching
https://atcoder.jp/contests/abc118/tasks/abc118_d直接用完全背包解决。用dp[i][j]表示此状态下最大的长度,长度相同时前面的位要越大越好,就在转移方程里加入一点优先级。输入的M个数字先排序优先级才能用。#include<cstdio>#include<string>#include<cstring>#...原创 2019-06-28 07:44:30 · 205 阅读 · 0 评论 -
Atcoder beginner contest 117D XXOR
https://atcoder.jp/contests/abc117/tasks/abc117_d看到位运算很有可能有2进制位。先把所有数转成2进制并且统计第i位有多少个1,然后从最高位(k和a1,a2…an的最高位)开始模拟,如果这个位的1的数量少于0的数量k的这个位就可以是1,这样1就变成0,0变成1,但还要判断k在这一位能否是1,若之前的位上都与k最大值的相应的位相同,则这一位取决于k最大...原创 2019-06-28 07:57:06 · 275 阅读 · 1 评论 -
arc103f Distance Sums
https://arc103.contest.atcoder.jp/tasks/arc103_d题意:已知一棵树各个顶点到其他顶点距离和Di,问是否存在这样的树并写出树的边。思路:首先Di最大的一个或几个点显然是叶子,即只有1条边与他相连,那么就从叶子开始找规律,设Di最大的点是x,那么他的上一个点的Dfather(x)应该是Dx-n+2*sizeof(x)。然后查找就好了。...原创 2019-07-14 09:49:49 · 298 阅读 · 0 评论