AtCoder AGC017C Snuke and Spells】的更多相关文章

题目链接 https://atcoder.jp/contests/agc017/tasks/agc017_c 题解 很久前不会做看了题解,现在又看了一下,只想说,这种智商题真的杀我... 转化成如果现在有\(x\)个\(y\), 我们给区间\([y-x+1,y]\)都\(+1\),那么答案就是区间内\(0\)的个数.. 于是就很好\(O(n)\)维护了..然而我真的想不到... 代码 #include<cstdio> #include<cstdlib> #include<cs…
题目链接:http://agc017.contest.atcoder.jp/tasks/agc017_c 题解:就是简单的模拟一下就行.看一下代码就能理解 #include <iostream> #include <cstring> #include <cstdio> using namespace std; const int M = 2e5 + 10; int a[M] , vis[M] , cnt[M]; int main() { int n , m; scanf…
题目大意: 给出n个球,每个球上都有数字,然后每次都进行如下操作 如果当前的球总共有k个,那么就把球上数字为k的所有球都消除掉 注意到,并不是每种情况都可以全部消光,所以你可以选择若干球,把它们标号改变,最后达到消光的目的 问最少需要改变几个球. 后面还跟着m个询问,每个询问会改变一个球的标号,问改变之后最少需要改变几个球才能消光. 题解: 大体先构建一个线段覆盖的模型,然后再证明这个模型是正确的 对于标号为i的球,覆盖线段[i-Ni, i](Ni为标号为i的球的个数) 每个球都做这样的覆盖,最…
题目传送门 Description 有 \(n\) 个球排在一起,每个球有颜色 \(a_i\),若当前有 \(k\) 个球,则会将所有 \(a_i=k\) 的球删掉.有 \(m\) 次查询,每次将 \(a_x\) 修改为 \(y\) ,问至少更改几个球可以使得删完所有球. \(n,m\le 2\times 10^5\) Solution 写发题解加深印象. 有一个结论,因为我懒,所以搬一下小粉兔的: 然后你就可以直接维护了. Code #include <bits/stdc++.h> usin…
大意: 给你一张无向图,边有种类. 当你第一次/重新进入某种边时费用 + 1 在同一种边之间行走无费用. 求 1 到 n 的最小费用. 嗯...乍一看有一个很直观的想法:记录每个点的最短路的上一条边的种类. 但是这个算法是个错的......有些数据能够hack掉. 由于边权只有0 & 1,考虑01BFS. 事实上我们还要记录每个点来之前的边,然后就要写结构体/pair 然后还要判重... 正解:考虑按照每个点的边的type拆点.在不同点的同一type分点之间边权为0原点与拆出来的点之间边权为1然…
目录 Catalog Solution: (有任何问题欢迎留言或私聊 && 欢迎交流讨论哦 Catalog Problem:传送门  Portal  原题目描述在最下面.  \(n(1e5)\)个点, \(m(2e5)\)条边, 每条边有一个属性值.经过一条同一属性值的连续路径花费为1.问从1到n的最小花费. Solution: 我的解法  直接边最短路搞,然后t的飞起.仔细一想,这样写的话有\(2e5\)个点,边数更是多到飞起,拿命跑啊,不过代码我还是放下面. 正解:拆点  把一条\(u…
A - Biscuits 题目: 给出 \(n\) 个物品,每个物品有一个权值. 问有多少种选取方式使得物品权值之和 \(\bmod\space 2\) 为 \(p\). \(n \leq 50\) 题解: 记录一下 \(n\) 个物品中权值是奇数的数的个数. 分类讨论一下喽... #include <cstdio> #include <cstring> #include <algorithm> using namespace std; typedef long lon…
contest link Official Editorial 比赛体验--之前做题的时候感觉 AtCoder 挺快的,现在打了VP之后发现还是会挂的--而且不是加载缓慢或者载不出来,直接给你一个无法访问,干脆利落.所以要打比赛的趁早把几道题都打开. 不过好消息是我发现我的垃圾英语水平看这个题面不成问题( 顺便,如果需要翻译的话,GoldenDict 是真的好用 A - Biscuits problem link Description There are \(N\) bags of biscu…
noi前橙名计划失败.全程搞C而gg…… A - Biscuits 题意:背包,求价值为奇/偶的方案数. #include<cstdio> #include<queue> #include<algorithm> #define ld long double #define MN 21000000 using namespace std; int read_p,read_ca; inline int read(){ read_p=;read_ca=getchar(); '…
在此处输入标题 标签(空格分隔): 未分类 A - Biscuits dp[i][0/1]表示当前和是偶数还是奇数,直接转移即可 #include <bits/stdc++.h> #define fi first #define se second #define pii pair<int,int> #define mp make_pair #define pb push_back #define space putchar(' ') #define enter putchar('…
前言: 因为要普及了,今年没一等就可以退役去学文化课了,所以暑假把历年noip普及组都刷了一遍,离noip还有50+天,想弄点强化训练什么的. 想了想,就这些天学文化课之余有空就把AtCoder之前那些ARC 的 C D E 什么的刷一下吧(一般是D,可能会有简单一点的E和难一点的C)(可能会很慢,毕竟基本有时间也就周末了) 所以就开了这个坑鞭策一下自己,上个坑是dp的,开了50题,补的巨累...这次吸取教训,只开20题...(也没那么多时间去刷题了) 不会说题意,题意的话可以上网找或者去原站看…
Problem Statement We have a grid with H rows and W columns. At first, all cells were painted white. Snuke painted N of these cells. The i-th ( 1≤i≤N ) cell he painted is the cell at the ai-th row and bi-th column. Compute the following: For each inte…
题目描述 In Takahashi Kingdom, there is an archipelago of N islands, called Takahashi Islands. For convenience, we will call them Island 1, Island 2, ..., Island N.There are M kinds of regular boat services between these islands. Each service connects tw…
题目描述 Fennec and Snuke are playing a board game.On the board, there are N cells numbered 1 through N, and N−1 roads, each connecting two cells. Cell ai is adjacent to Cell bi through the i-th road. Every cell can be reached from every other cell by re…
题目传送门:https://arc068.contest.atcoder.jp/tasks/arc068_c 题目翻译 直线上有\(0-m\)这\(m+1\)个点,一共有\(m\)辆火车.第\(i\)辆火车只会在\(i\)的倍数点上停靠,所有车都从\(0\)号点出发. 一共有\(n\)个商品,第\(i\)个商品只会在\(l_i-r_i\)号点出售,问你对于每辆火车,在可以停靠的站里,可以买到的商品种类数. \(m\leqslant 10^5,n\leqslant 3*10^5\). 题解 对于长…
D - Fennec VS. Snuke Time limit : 2sec / Memory limit : 256MB Score : 400 points Problem Statement Fennec and Snuke are playing a board game. On the board, there are N cells numbered 1 through N, and N−1 roads, each connecting two cells. Cell ai is a…
C - Cat Snuke and a Voyage Time limit : 2sec / Memory limit : 256MB Score : 300 points Problem Statement In Takahashi Kingdom, there is an archipelago of N islands, called Takahashi Islands. For convenience, we will call them Island 1, Island 2, ...,…
C - Snuke Festival ....最后想到了,可是不应该枚举a[],这样要二重循环,而应该枚举b[],这样只需一重循环... #include<iostream> #include<cstdio> #include<cstring> #include<algorithm> using namespace std; typedef long long ll; ; int a[maxn],b[maxn],c[maxn]; int n; int Fin…
BUPT2017 wintertraining(15) #9A 题意 有n个纪念品,购买区间是\([l_i,r_i]\).求每i(1-m)站停一次,可以买到多少纪念品. 题解 每隔d站停一次的列车,一定能买到购买区间的长度≥d的纪念品. 长度比d小但包含了d的倍数的纪念品也可以买到. 所以,如果按长度给纪念品排序,用树状数组维护长度小于当前d的购买区间,那么就可以很快求出每个停靠点(d的倍数)有多少个长度不超过d的纪念品了. 代码 #include <cstdio> #include <…
题意 小 \(\mathrm{C}\) 很喜欢二维染色问题,这天他拿来了一个 \(w × h\) 的二维平面 , 初始时均为白色 . 然后他在上面设置了 \(n\) 个关键点 \((X_i , Y_i)\) , 对于每个关键点他会选择进行下列操作的一个 : 将 \(x > X_i\) 的部分染成黑色. 将 \(x < X_i\) 的部分染成黑色. 将 \(y > Y_i\) 的部分染成黑色. 将 \(y < Y_i\) 的部分染成黑色. 现在让你 , 最大化所有操作结束之后白色部分…
传送门 就是给出一个矩形,上面有一些点,让你找出一个周长最大的矩形,满足没有一个点在矩形中. 这个题很有意思. 考虑到答案一定会穿过中线. 于是我们可以把点分到中线两边. 先想想暴力如何解决. 显然就是枚举矩形的上下边的坐标然后求两边的最大宽度. 用单调栈搞一下这样的效率是O(n2)O(n^2)O(n2)的. 考虑继续优化. 干脆我们只枚举一条边,另外一条用线段树维护最值. 代码: #include<bits/stdc++.h> #define N 300005 #define lc (p&l…
传送门 就是一个另类最短路啊. 利用颜色判断当前节点的最小花费的前驱边中有没有跟当前的边颜色相同的. 如果有这条边费用为0,否则费用为1. 这样跑出来就能ac了. 代码: #include<bits/stdc++.h> #define N 500005 #define M 500005 using namespace std; inline int read(){ int ans=0; char ch=getchar(); while(!isdigit(ch))ch=getchar(); wh…
传送门 谁能想到这道题会写这么久. 本来是一道很sb的题啊. 就是每次选一个点只会影响到周围的九个方格,随便1e9进制就可以hash了,但是我非要作死用stl写. 结果由于技术不够高超,一直调不出来. 然后换成1e9进制的hash发现一直WA. 感觉是long long与int之间卡出了一点问题吧. 然后调了半天终于调过了. 代码: #include<bits/stdc++.h> #define N 100007 using namespace std; int n,h,w,n0,tot=0,…
二分水题,A,B,C三个数组排序,对于每个B[i],二分算出来有多少A比他小,多少C比他大,然后扫一遍出结果.O(nlog(n))水过. #include <bits/stdc++.h> using namespace std; const int MAXN = 1e5+10; int A[MAXN],B[MAXN],C[MAXN]; int n; //严格小于B[i]的数字个数 和 严格大于B[i]的数字个数 long long lnb[MAXN],unb[MAXN]; int main()…
题意:你需要订阅一些服务,每个服务每天需要花费\(c_i\),要从第\(a_i\)用到第\(b_i\)天,你可以购买会员,会员每天需要花费\(C\),但是这天的服务不用再另花钱了,问你订阅这些服务的最小花费是多少. 题解:对于这种某一段区间的加加减减的问题,我们首先应该考虑的是用差分,我们可以用map来做差分数组,然后遍历map累加差分数组的前缀和,再和\(C\)比较,贡献给答案就可以了. 代码: #include <bits/stdc++.h> #define ll long long #d…
AtCoder Regular Contest 061 C.Many Formulas 题意 给长度不超过\(10\)且由\(0\)到\(9\)数字组成的串S. 可以在两数字间放\(+\)号. 求所有方案的数字和. 思路 \(2^{|S|-1}\)枚举加号的放置状态 代码 Many Formulas D.Snuke's Coloring 题意 在一个\(H \times W(3 \le H,W \le 10^9)\)的棋盘上,有\(N(N \le 10^5)\)个格子被染成黑色,其余格子为白色.…
D - Menagerie Time limit : 2sec / Memory limit : 256MB Score : 500 points Problem Statement Snuke, who loves animals, built a zoo. There are N animals in this zoo. They are conveniently numbered 1 through N, and arranged in a circle. The animal numbe…
A - K-City Time limit : 2sec / Memory limit : 256MB Score : 100 points Problem Statement In K-city, there are n streets running east-west, and m streets running north-south. Each street running east-west and each street running north-south cross each…
AtCoder Regular Contest 078 D - Fennec VS. Snuke 题意 给一个树,1是白色,n是黑色,其它没有颜色.Fennec每次可以染白色点的直接邻居为白色.Snuke则染黑色点的邻居为黑色.谁先不能动就输了.问谁赢. 题解 先找出1到n的唯一路径path[1..len],然后Fennec可以依次取1到len/2的点及其不在路径上的孩子.剩下的就是Snuke的.谁多就谁赢了. 代码 #include <cstdio> #define N 100005 int…
AtCoder ExaWizards2019题解 AtCoder (因为代码直接用模板写的,可能有点冗长) A.Regular Triangle 给你三根棍子的长度,问你能否用他们组成等边三角形. 什么逗逼玩意? #include<iostream> #include<cstdio> #include<cstdlib> #include<cstring> #include<cmath> #include<algorithm> #inc…