
AtCoder
olahiuj
我的女朋友不抽烟不喝酒不傲娇不化妆不存在
展开
-
AtCoder Regular Contest 096 题解
BG想了想还是扔一起吧C - Half and Half网上题解有枚举过的,也有三分过的,为啥不O(1)呢?最优秀只有三种情况,单独买A+B,买min(A,B)个C然后剩下的单独买,买max(A,B)个C我们反证一下就可以知道这样是对的了。。Code#include <stdio.h>#include <string.h>#include <a...原创 2019-02-22 18:12:20 · 190 阅读 · 0 评论 -
AtCoder Grand Contest 017D Game on Tree 树的删边游戏
Description给定一棵有根树,两个人轮流操作,每次可以切除树上的一条边把子树扔掉。问谁能必胜n≤105n\le10^5n≤105Solution这个树上切边博弈好像是结论啊考虑这样一个形状的树的sg假设我们知道了sg[y],我们连出一条x-y的边等价于给y子树中的所有状态增加了一个sg为0的后继状态考虑到sg求的是mex,那么就有sg[x]=sg[y]+1了于是一个x...原创 2019-03-27 22:12:45 · 268 阅读 · 0 评论 -
AtCoder Grand Contest 017F Zigzag 状压dp
Description有一个边长为n的正三角形,定义一条路径为从(1,1)出发,每次向左下或向右下走一格走n-1次到底问有多少种方案使得可以选出m条不相同的路径,对于任意的i,保证第i条不在第i-1条的左侧同时给出m个限制形如(x,y,z),表示第x条路径的第y步一定要往z这个方向走n,m≤20n,m\le20n,m≤20Solution注意到起点是一样的,那么我们可以用一个n-1...原创 2019-03-28 10:03:25 · 210 阅读 · 0 评论 -
AtCoder Regular Contest 068E Snuke Line 离线+树状数组
Description有m+1个站台,n个物品,其中第i个物品在第l[i]到第r[i]个站台都有的买一个人从0开始每次走d步,买下能买的物品,问能买到多少种不同的物品,对于d=1…m输出答案Solution看了半天才弄明白会买到同样的物品只算一件。。一个错误的做法是我们把物品区间加然后枚举d求和。由于有的物品区间长度>d,导致它会被算多次于是做法就很显然了,我们把长度>...原创 2019-04-11 08:23:31 · 202 阅读 · 0 评论 -
AtCoder Grand Contest 018D Tree and Hamilton Path 树的重心 贪心 乱搞
Description有一棵n个节点带边权的树,建一个完全图G,G中两点的边权为树上两点的最短路,在G中找一条权值之和最大的哈密顿回路,求这个权值n≤105n\le10^5n≤105Solution实际上就是要找一个排列p[],使得∑dis(pi,pi−1)\sum dis(p_i,p_{i-1})∑dis(pi,pi−1)最小贪心地想,我们保证每次经过树根一定最优,因为这样两两...原创 2019-03-28 11:09:06 · 192 阅读 · 0 评论 -
AtCoder Regular Contest 068F Solitaire dp
Description有一个双端队列,按照1…n的顺序把n个卡片放进队头或队尾得到一个满的队列然后每次可以从头或从尾取一个数字取n次,这样得到一个长度为n的序列。问1恰好在k这个位置的方案数Solution这题好劲啊可以发现几个小性质。首先队列里的元素一定是先减后增的,并且由于1在k这里,所以前k-1个数字必须是一个或两个单调下降序列,而后面n-k-1个随便从队列两端选。然后我就不会...原创 2019-04-11 10:47:58 · 458 阅读 · 0 评论 -
Atcoder Grand Contest 019C Fountain Walk dp
Description有一个1e8*1e8的网格图,保证每个格子是长度为100的正方形,在格点间行走时必须沿着水平或竖直方向,且只能在格点处拐弯现在有n个直径为10的圆在不同格点上,保证同一行同一列最多只有一个圆。经过这些圆的时候必须绕着走问从(x1,y1)走到(x2,y2)的最短路n≤2⋅105n\le2\cdot10^5n≤2⋅105Solution很显然我们只会朝着两个方向走...原创 2019-03-28 16:31:09 · 164 阅读 · 0 评论 -
AtCoder Regular Contest 082E ConvexScore 乱搞
Description给n个平面上的点。定义一个点的集合S的权值为2|S|-|T|,其中T是集合S在凸包上的点求所有点的集合的权值之和Solution看不懂题是最大的阻碍。。那个|S|-|T|实际上就是凸包内部的点,那么S权值的含义就是那些点集的凸包和S的凸包相同于是问题就变成了可以任意选点,问组成凸包的数量。这个我们减去单点和直线的情况算答案就可以了Code#include...原创 2019-04-08 12:25:06 · 131 阅读 · 0 评论 -
AtCoder Regular Contest 079F Namori Grundy 乱搞
Description给出一个n个点n条边的有向图,保证每个点出度为1问能否给每个节点染色,使得每个节点的颜色为所有出边连向点的颜色的mexSolution题图就是一个环套树,并且边是向着环的考虑树的情况,肯定可以染色,并且每个节点的答案c[x]就是我们在树上做mex考虑环的情况,肯定染成01交替,出现奇环就是IM可以证明此时的出来的c[]是染色的一个下界组合在一起就是,当出现...原创 2019-04-08 19:13:39 · 232 阅读 · 0 评论 -
AtCoder Regular Contest 078F Mole and Abandoned Mine 状压dp
Description给n个点m条边的无向连通图,每条边带边权。现在要删掉一些边使得1到n的简单路径数量恰好为1,问删掉边的边权之和最小是多少n≤15n\le15n≤15Solution数据就很状压,转换一下求选择边权的最大值一个小性质就是,答案肯定是一条1到n的路径加上若干连出去的满连通块。这个可以画图感性一下然后就可以用这个小性质dp了。设f[i,S]表示从1走到i,选择了S这...原创 2019-04-08 21:53:24 · 179 阅读 · 0 评论 -
AtCoder Regular Contest 076E Connected? 栈
DescriptionN*M的矩阵里面有k对不同颜色的点,同颜色的点之间互相连边,问所有的边是否能不相交k≤105k\le10^5k≤105Solution首先因为边是可以随便拉扯的,因此很容易想到不合法的情况当且仅当两对点都在边界上,并且且它们相交考虑把一条边拆成两个点,我们按照顺时针方向依次遍历这些点。一条边中的第一次出现的点入栈,第二次出现就出栈。那么不合法的情况就是一条边已经...原创 2019-04-03 11:58:52 · 176 阅读 · 0 评论 -
AtCoder Regular Contest 076F Exhausted? Hall定理+线段树
Description有n个人要坐凳子,总共m个凳子。每个人有要求必须坐编号<=L[i]或>=R[i]的凳子,问最少加多少凳子能让所有人有地方坐。。n,m≤2∗105n,m\le2*10^5n,m≤2∗105Solution考虑贪心怎么写。我们按照L从小到大把人扔到当前可坐的最小位置上,实在坐不了就从已经坐好了的人里面换一个R最小出来。感觉这个做法要直观一点啊霍尔定理:若...原创 2019-04-03 16:04:05 · 210 阅读 · 0 评论 -
Atcoder Regular Contest 077E guruguru 前缀和+贪心
Description赶时间,自己看题吧。。Solution考虑枚举x的位置算答案,直接做是O(nm)的注意到x向后的每个位置减少的贡献是等差数列,那么我们单点修改然后两次前缀和就ojbk了看了一下别的题解比好像只用一个数组就可以了Code#include <stdio.h>#include <string.h>#include <algori...原创 2019-04-09 17:37:38 · 226 阅读 · 0 评论 -
AtCoder Regular Contest 080E Young Maids 堆+RMQ
Description给一个n排列p[],每次可以从中选取两个连续的元素拿出来,按照原本顺序放进一个队列q[]的前端问字典序最小的qn≤2∗105n\le2*10^5n≤2∗105Solution很容易想到找最小的数作为开头元素,并且可以发现假如我们选择了某个位置x,那么另一个位置y一定和x奇偶性不同,并且x-1和n-y必须是偶数那么就是十分好做了。我们按照奇偶性把序列拆成两份,每...原创 2019-04-03 19:44:36 · 175 阅读 · 0 评论 -
AtCoder Regular Contest 074F Lotus Leaves 最小割
Solution一个非常显然的做法就是我们拆点,然后连边跑最小割。这样边数是2(n2m+m2n)的,好像只会T一个点另外一个非常显然的做法就是我们按行列建二分图,那么点就变成边的限制了,这样边数是2nm的,非常优秀Code#include <stdio.h>#include <string.h>#include <algorithm>#incl...原创 2019-04-09 20:50:11 · 166 阅读 · 0 评论 -
AtCoder Regular Contest 073F Many Moves 线段树优化dp
Description有一排n个格子,一开始两个棋子在a和b。一个长度为m的操作序列要求第i次要将一个棋子移动到第x[i]个格子。一次移动代价为两格子之间距离,最小化代价之和n≤2e5n\le2e5n≤2e5Solution非常套路的dp,设f[i,j]表示一个棋子在x[i],另一个在j的最小答案,保证j<x[i]。转移的话我们往后推看是哪个棋子移动到了x[i+1]就好了,这样...原创 2019-04-10 09:19:37 · 213 阅读 · 0 评论 -
AtCoder Regular Contest 102F Revenge of BBuBBBlesort! 乱搞
Description给一个n排列p[],若存在一个位置i使得p[i-1]>p[i]>p[i+1],那么就可以交换p[i-1]和p[i+1]Solution真·感性乱搞+分类讨论首先记a[i]=[p[i]=i],那么我们可以把p分成若干段01交替出现、首尾皆为0的子串。由交换性质可知这些段之间互不影响,即交换不会跨过这些段考虑一整段[l,r]什么情况会No。如果出现了最...原创 2019-04-21 21:31:54 · 751 阅读 · 0 评论 -
AtCoder Regular Contest 097 题解
C K-th Substringk才5,随便做都行。当然也可以SAM求第k大#include <stdio.h>#include <string.h>#include <algorithm>#include <iostream>#include <string>#define rep(i,st,ed) for (int ...原创 2019-04-22 15:06:16 · 274 阅读 · 0 评论 -
AtCoder Grand Contest 016F Games on DAG 状压dp
Description给定一张n个点m条有向边的dag,保证每条边x<y现在A和B分别放两个棋子在1和2节点上,然后轮流移动棋子,不能动者输问2m个子图中先手必胜的子图的方案数n≤15n\le15n≤15Solution这个范围一看就是状压考虑先手必胜的含义,那么就是1和2节点的sg不相等的方案数直接做不太好弄,我们可以补集转化算sg相等的方案数设f[S]表示选了S这个...原创 2019-03-27 21:13:52 · 164 阅读 · 0 评论 -
AtCoder Grand Contest 016E Poor Turkeys bitset+乱搞
Description有n个火鸡和m个人,m个人按次序吃鸡(雾。第i个人会按照一下策略吃鸡如果x[i]和y[i]都活着,就等概率选一个吃掉如果有一个活着,就吃掉活着的否则就啥也不做问能选出多少对鸡,它们同时活下来的概率不为0Solution一开始想着要建图啥的。。考虑倒着做,我们记S[t,i]表示做到第t个人,第i只鸡要活下来至少还需要有哪些其它鸡活下来然后我们大力讨论一...原创 2019-03-27 19:46:12 · 171 阅读 · 0 评论 -
AtCoder Regular Contest 095 题解
BGatcoder上的题都好奇妙哇说是题解实际上只会做前三题QUQC - Many Medians给定n个数字a[],分别求出当i=1…n时,除去i后剩余数字的中位数没啥好说的,权值线段树然后二分就可以了,这种东西写多了30行都可以搞定。。#include &amp;lt;stdio.h&amp;gt;#include &amp;lt;string.h&amp;gt;#include &a原创 2019-02-19 21:55:50 · 267 阅读 · 0 评论 -
AtCoder Grand Contest 015 D A or...or B Problem 乱搞
Description给定一个区间[A,B],问从区间内任意取出一些数字,它们或出的不同结果有多少种A,B≤260A,B\le2^{60}A,B≤260Solution考虑转成二进制来做。A和B相同的最高几位都是没用的,扔掉记F是A和B从高到低第一位不同的二进制位,S是B从高到低第二位为1的二进制位我们可以把区间分成两份,也就是[A,2F−1][A,2^F-1][A,2F−1]和[...原创 2019-03-20 08:06:55 · 172 阅读 · 0 评论 -
arc090E Avoiding Collision 最短路计数
Description给一张无向带权图,求有多少对最短路点不相交、边不相交Solution如果没有限制就是最短路计数,考虑减去不合法的路径对我们可以枚举香蕉的点,这个点x只有当dis[st][x]*2=dis[x][ed]*2=dis[st][ed]时我们才算它同样可以枚举香蕉的边,这条边w只有当dis[st][x]*2<dis[st][ed]且dis[y][ed]*2<...原创 2019-03-16 12:38:45 · 299 阅读 · 0 评论 -
AtCoder Grand Contest 015 E Mr.Aoki Incubator dp+树状数组
Description给出若干个数轴上的点,每个点有起始位置x和速度v一开始可以给若干点染色,染色点与未染色点相遇会传染颜色,问多少种染色方案使得最后所有点被染色n≤105∀i∈[1,n],  ∣xi∣,∣vi∣≤109n\le 10^5\\\forall i\in[1,n],\; |x_i|,|v_i|\le10^9n≤105∀i∈[1,n],∣xi∣,∣v...原创 2019-03-20 19:44:50 · 153 阅读 · 0 评论 -
AtCoder Grand Contest 016 B Colorful Hats 乱搞
Description有n只猫,每只猫有一个颜色。每只猫都会看一看除它以外有多少种颜色,记这个序列为a[]现在给出n和a[],问是否存在一个颜色序列满足给出的限制Solution技不如人甘拜下风.jpg很容易想到全部一样要咋做。全部一样的话要么颜色全部一样,要么每种颜色至少两个,这个判一下就可以了 假设一共有k种颜色的帽子。 一个独一无二的颜色会说k-1其余说k。 如果最...原创 2019-03-20 21:33:45 · 139 阅读 · 0 评论 -
AtCoder Grand Contest 031 B Reversi dp
Description有n个砖头(?),每个砖头有自己的颜色。我们每次可以选择两个颜色相同的砖头然后把它们之间的砖头都染成这种颜色,问任意操作之后最终不同的结果有多少种Solution脑子不够用,来写一点日本题我们把一次操作看成选取一个区间,那么最终序列不同等价于选择的区间不同两个区间的关系讨论一下就有A包含B,那么只有一个有用A与B相离,那么A和B都可以选A与B香蕉,那么只有...原创 2019-03-17 12:18:52 · 196 阅读 · 0 评论 -
AtCoder Grand Contest 013 C Ants on a Circle 模拟
Description一个周长为L的圆上有n个蚂蚁,每个蚂蚁有一个初始方向(顺/逆时针),每只蚂蚁在一单位时间内可以爬行一单位距离,两只蚂蚁相遇后各自调转方向继续爬,问T时间后每个蚂蚁的位置n≤105,L,T≤109n\le 10^5,\\ L,T\le10^9n≤105,L,T≤109Solution由于每只蚂蚁都是等价的,我们把调转方向看成是交换编号然后继续按原来的方向走一个比较...原创 2019-03-18 08:00:53 · 202 阅读 · 0 评论 -
AtCoder Grand Contest 012 C Tautonym Puzzle 构造
Description定义一个序列是好的当且仅当它可以被表示成一个序列复制一倍后拼接,例如:aaaa,abab,abcabc给定一个n,要求构造一个序列s满足|s|<=200s中含有恰好n个好的子序列s中的元素∈[1,100]n≤1012n\le 10^{12}n≤1012Solution一般的构造考虑两个方向,拆成若干段不干扰然后拼接,或者考虑倍增得到它可以发现a...原创 2019-03-18 15:11:41 · 319 阅读 · 0 评论 -
AtCoder Grand Contest 012 E Camel and Oases 状压dp
Description有一个容量为V的包,n个接水点,坐标分别为x[]有两种移动方式:若两个接水点之间的距离不超过此时包的容量v,那么就可以移动若此时v不等于0,那么可以使v=v/2(下取整),然后跳到任意一个位置对于每一个接水处作为出发点,分别回答能否到达所有其余接水点n,V≤105n,V\le 10^5n,V≤105∀i≤n,&ThickSpace;xi≤109\f...原创 2019-03-18 16:43:53 · 233 阅读 · 0 评论 -
AtCoder Grand Contest 014 D Black and White Tree 博弈 树形dp
Description有一棵树和两个玩家A、B轮流操作A先手,每次A可以把一个未染色节点染白,B可以染黑所有人操作完后,黑色点周围的白点都会变黑,但是新变黑的点不会造成任何影响若一棵树全变黑了B赢,否则A赢给出树,问谁能赢Solution之前好像见过这个结论若存在完美匹配,无论先手染哪一个点,后手必然可以染该点的匹配点,从而后手必胜。若不存在完美匹配,则必然有至少一个叶节点存...原创 2019-03-18 21:22:19 · 275 阅读 · 0 评论 -
AtCoder Regular Contest 070F HonestOrUnkind 交互题
Description这是一道交互题有A个诚实的人和B个不诚实的人,每次可以操作(x,y)表示向x询问y是否是诚实人。若x诚实则如实回答,否则将会以一定策略回答问能否在2n次询问内求出每个人是否诚实1≤A,B≤20001\le A,B\le20001≤A,B≤2000Solution首先若A<=B则肯定不行,因为可以从B里面挑A个伪装成A若A>B,那么我们的策略就是先...原创 2019-03-25 19:54:55 · 501 阅读 · 0 评论 -
AtCoder Grand Contest 015 C Nuske vs Phantom Thnook 二位前缀和
Description给定一张n*m的网格图,每个格子可以是蓝色或者白色已知任意两个蓝色格子之间最多只有一条简单路径,Q次询问(x1,y1,x2,y2)这个矩形内部有多少个蓝色格子的连通块n,m≤103Q≤105n,m\le 10^3\\ Q\le10^5n,m≤103Q≤105Solution一开始没看到加粗的那句话。。最大的困难在于读题这句话告诉我们,把蓝色格子看成点的话原图中...原创 2019-03-18 21:58:54 · 143 阅读 · 0 评论 -
AtCoder Grand Contest 019F Yes or No 组合数学
Description有n+m道题目,n道题目的答案为Y,m道为N现在你要回答这n+m道题目,每次会从没答过的题目中抽一道回答,若回答正确就加一分。问最优策略下得分的期望Solutiontourist的题目真是劲啊我们可以用一对整数对(x,y)表示一个剩余x个1问题,剩余y个2问题的局面。显然每一步的最优策略就是猜剩得多的那个,这样等价于我们在每个点有概率往两个方向走一步,且只有一种...原创 2019-03-29 15:14:51 · 258 阅读 · 0 评论 -
AtCoder Regular Contest 080F Prime Flip 线性筛+二分图匹配
Description区间中有一些0和1,每次可以选择长度为奇质数的一段区间翻转0和1,问最少多少次操作使得整个区间全为0Solution区间操作可以考虑异或差分,那么一整段翻转就等价于单点修改两个位置了。全为0就是我们要把1的位置两两匹配。我们可以讨论一下区间长度d,若d为质数,那么d可以一次覆盖。若d为偶数,那么由哥德巴赫猜想可知d可以两次覆盖。若d为奇合数,那么可以先覆盖一个3然...原创 2019-04-04 08:22:58 · 211 阅读 · 0 评论 -
AtCoder Regular Contest 074E RGB Sequence dp
Description长度为n的序列可以涂RGB三种颜色,m个限制形如l,r,x表示l到r有恰好x种颜色问满足所有要求的涂色方案数n≤300n\le300n≤300Solution一开始想到了一个非常假的做法。。结果当然没过啦设f[i,a,b,c]表示到了第i个位置,三种颜色最后出现的位置分别是a、b、c的方案数。这个转移非常好想然后我们可以发现每个位置都要涂色,那么就可以设f[...原创 2019-04-04 11:24:20 · 177 阅读 · 0 评论 -
AtCoder Regular Contest 098 题解
C - Attentionsb题,我们前缀后缀和一下直接O(N)算贡献就可以了#include <stdio.h>#include <string.h>#include <algorithm>#define rep(i,st,ed) for (int i=st;i<=ed;++i)const int INF=0x3f3f3f3f;con...原创 2019-04-22 21:58:08 · 811 阅读 · 0 评论