随笔分类 -  OJ-Atcoder

摘要:"传送门" $A$ 咕咕 阅读全文
posted @ 2019-11-24 17:56 源曲明 阅读(477) 评论(0) 推荐(0)
摘要:传送门 \(A\) 咕咕 ll n,res;bool fl; int main(){ scanf("%lld",&n),fl=1; while(n>9)res+=9,fl&=(n%10==9),n/=10; printf("%lld\n",res+n-1+fl); return 0; } \(B\) 阅读全文
posted @ 2019-10-17 21:51 源曲明 阅读(295) 评论(0) 推荐(0)
摘要:"传送门" 怎么又是$tourist$神仙的题…… $A$ 咕咕 $B$ 考虑从后往前做,假设考虑到$a_i$,且只考虑第$a_{i+1}$到$a_n$的答案为$s$,那么考虑了$a_i$的答案$p$要满足$p/a_i\times a_i=s$(这里是下取整),因为这里必有$a_i|s$,所以$p$ 阅读全文
posted @ 2019-10-15 20:30 源曲明 阅读(242) 评论(0) 推荐(0)
摘要:"传送门" $A$ 咕咕 $D$ 首先选的顺序肯定是按$h_i+p_i$排序之后再选最优的(证明的话,可以考虑一个合法的选的序列,对于每一个$i$必须满足$\sum_{j\leq i} h\leq h_i+p_i$,因为前缀和递增所以$h_i+p_i$也必须非降才是),然后直接$dp$就是了 $F$ 阅读全文
posted @ 2019-10-14 19:52 源曲明 阅读(263) 评论(0) 推荐(0)
摘要:"传送门" $A$ 咕咕咕 $B$ 咕咕咕 $D$ 考虑最终的序列,一个$1$一定是由一开始的$11111...101$或者$101...111$转移而来的,且假设有$k$个$1$,那么贡献就是$k 1$,我们记形如这样的串为好的,那么所有好的串的串长总和是$O(n)$的,那么预处理一下直接$dp$ 阅读全文
posted @ 2019-10-13 15:10 源曲明 阅读(144) 评论(0) 推荐(0)
摘要:"传送门" $A$ 咕咕 $B$ 咕咕 $C$ 首先去掉所有$x$之后得是一个回文,然后把不是$x$字母之间的$x$填到对称就是了 cpp //quming include define R register define fp(i,a,b) for(R int i=(a),I=(b)+1;iI; 阅读全文
posted @ 2019-10-09 19:15 源曲明 阅读(250) 评论(0) 推荐(0)
摘要:"传送门" $A$ 首先只有一串的情况下,遇到相同的肯定是改后面那一个最优,然后两串的话可能要分奇偶讨论一下 $B$ 首先有奇环肯定无解,否则我们枚举哪个点是$1$号点,用$bfs$依次确定剩下的每个点的编号,因为图中不存在奇环所以这样跑出来的肯定合法 $E$ 好迷的题目啊…… 首先把环从$2n$到 阅读全文
posted @ 2019-10-09 09:01 源曲明 阅读(577) 评论(0) 推荐(2)
摘要:"传送门" $A$ 咕咕 $E$ 首先第一次肯定是整行或整列的,那么我们假设第一次是整列,并假设整列涂色的区间为$[l,r]$(其中$l,r$两列必须可以涂色),设这个区间中上下都可以涂色的列的个数为$k$,那么这一部分的贡献就是$2^k$ 然后考虑两边,我们强制两边都得先横着涂一次,之后随意。以左 阅读全文
posted @ 2019-10-03 16:27 源曲明 阅读(271) 评论(0) 推荐(0)
摘要:"传送门" $A$ 咕咕 $B$ 先不考虑结果不变的操作,发现如果一个翻转的区间$[l,r]$满足$s[l]=s[r]$那么我们现在可以选择操作$[l+1,r 1]$而使得最终的序列和翻转$[l,r]$之后的序列相等,那么我们就不计数$[l,r]$,这样我们只要数出有多少对$[l,r]$满足$s[l 阅读全文
posted @ 2019-10-03 08:21 源曲明 阅读(204) 评论(0) 推荐(0)
摘要:"传送门" $A$ 根据裴蜀定理显然要$k|\gcd(a_1,...,a_n)$,顺便注意不能造出大于$\max(a_1,...,a_n)$的数 $C$ 先考虑二维的情况,即总共有$n=x+y$个人,每个人有金币$a_i$或银币$b_i$,那么先假设所有人都取银币,加上前$x$大的$a_i b_i$ 阅读全文
posted @ 2019-09-27 20:29 源曲明 阅读(215) 评论(0) 推荐(0)
摘要:"传送门" $A$ 直接转移就是了 $B$ 我是个$zz$…… 每个数的贡献要么为正要么为负,那么我们枚举有几个贡献为正的,然后算一下贡献总和的上下界就行了 cpp typedef long long ll; int n,a,b,c,d;ll l,r; int main(){ scanf("%d%d 阅读全文
posted @ 2019-09-26 18:47 源曲明 阅读(172) 评论(0) 推荐(0)
摘要:"传送门" $A$ 直接枚举最终的字母然后模拟就行了…… 就这数据范围还是别学我写的这种做法了…… $B$ 所有颜色可以被分成只出现$1$次的和出现多次的,而前者的$a_i$必定比后者小$1$ 如果所有的$a_i$都相等,考虑到底是全出现$1$次还是全出现多次,否则必定是形如若干个$k 1$和$k$ 阅读全文
posted @ 2019-09-25 18:32 源曲明 阅读(249) 评论(0) 推荐(0)
摘要:"传送门" $A$ 找到能达到的最大的和最小的,那么中间任意一个都可以被表示出来 $B$ 分别算出需要走一次的对数和两次的对数即可 $C$ 不难发现蓝点构成了一个类似树的东西,那么连通块个数就是总点数减去边数,分别维护一下就好了 $D$ 首先如果$A=B$答案为$1$,所以我们假设$B A$ 找到第 阅读全文
posted @ 2019-09-23 16:07 源曲明 阅读(136) 评论(0) 推荐(0)
摘要:"传送门" 这场表现的宛如一个$zz$ $A$ 先直接把前$b$行全写成$1$,再把前$a$列取反就行 $B$ 先除去区间内本就有序的情况,那么操作$[i,i+k 1]$和$[i+1,i+k]$等价当且仅当$p_i$是$[i,i+k 1]$中最小的元素且$p_{i+k}$是$[i+1,i+k]$中最 阅读全文
posted @ 2019-09-22 15:55 源曲明 阅读(469) 评论(3) 推荐(0)
摘要:"传送门" $A$ 首先大力猜测一下答案不会很大,所以次数大于$10^6$输出$ 1$就行了 不过我并不会证上界,据说是因为如果$a=b=c$且都是偶数肯定$ 1$,否则设$a\leq b\leq c$,则最大最小值的差为$c a$,一次操作之后变成了${c a\over 2}$,所以操作次数就是$ 阅读全文
posted @ 2019-09-20 17:54 源曲明 阅读(223) 评论(0) 推荐(0)
摘要:"传送门" $A$ 先把相同的缩一起,然后贪心就可以了 $D$ 首先第$1$个球和第$2m$个球显然颜色任选,那么我们去掉这两个,变成了$m 1$次放两个球选两个球的操作,同时初始时有$n 1$个球 用$1$表示黑球,$0$表示白球,那么每次放球有三种选择,$11,00,01$($01$和$10$默 阅读全文
posted @ 2019-09-19 19:07 源曲明 阅读(171) 评论(0) 推荐(0)
摘要:"传送门" $A$ 似乎并不难啊然而还是没想出来…… 首先我们发现对于一个数$k$,它能第一个走到当且仅当对于每一个$i define R register define fp(i,a,b) for(R int i=(a),I=(b)+1;iI; i) define go(u) for(int i= 阅读全文
posted @ 2019-09-17 16:44 源曲明 阅读(234) 评论(0) 推荐(1)
摘要:"传送门" $A$ 肯定是后面每两个陪最前面一个最优 阅读全文
posted @ 2019-09-16 21:59 源曲明 阅读(193) 评论(0) 推荐(0)
摘要:"传送门" 越学觉得自己越蠢……这场除了$A$之外一道都不会…… $A$ 贪心从左往右扫,能匹配就匹配就好了 $C$ 首先发现,$a_i\oplus a_{i 1}$的结果必定形如$2^k 1$ 那么我们记当前的$\oplus$结果为$res$,然后从$29$位依次考虑到第$0$位,如果当前位为$1 阅读全文
posted @ 2019-09-15 16:23 源曲明 阅读(380) 评论(0) 推荐(0)
摘要:"传送门" $A$ 什么玩意儿…… $B$ 什么玩意儿…… $E$ 我好像想的太复杂了…… 首先吃小饼干的次数绝对不会超过$O(\log n)$,那么我们干脆枚举一下吃了多少次小饼干 假设当前吃了$i$次小饼干,那么假设出去吃饼干之外剩下的部分花了时间$t$,那么对于这$t$的时间肯定是平均分配最优 阅读全文
posted @ 2019-09-11 18:37 源曲明 阅读(528) 评论(2) 推荐(2)