CSP-S 2019 题解】的更多相关文章

前 言: 一直很想写这道括号树..毕竟是在去年折磨了我4个小时的题.... 上午小测3 T1 括号序列 前言: 原来这题是个dp啊...这几天出了好几道dp,我都没看出来,我竟然折磨菜. 考试的时候先打了个暴力,然后就开始往容斥上想.... 解析: 考虑dp. 令dp[i] 表示以i为结尾的,合法的子串数量. 令match[i] 表示进行括号匹配时,与i匹配的括号的编号. (以上i都是右括号,如果是左括号置为0即可) 然后,就有: if(match[i]) dp[i]=dp[match[i]-1…
Hello 2019题解 题解 CF1097A [Gennady and a Card Game] map大法好qwq 枚举每一个的第\(1,2\)位判是否与给定的重复即可 # include <bits/stdc++.h> std::map<char, int> m1, m2; int main() { std::string s[6], str; std::cin >> str; for(int i = 1; i <= 5; i++) std::cin >…
[A]Azulejos 题意简述: 有两排瓷砖,每排都有 \(n\) 个,每个瓷砖有高度 \(h_i\) 和价格 \(p_i\) 两种属性. 你需要分别重新排列这两排瓷砖,使得同一排的瓷砖满足价格不降,后一排的瓷砖的高度严格大于前一排对应瓷砖的高度. 判断无解或输出一种合法方案. 题解: 首先要满足价格不降,那么先把两排瓷分别按照 \(p_i\) 排序. 如果同一排中的两个瓷砖 \(p_i\) 不同,那么顺序已经确定.但是如果 \(p_i\) 相同,就可以任意交换顺序. 也就是说,前后两排中的瓷…
传送门 \(HMAPPY2\) 咕 话说这题居然卡\(scanf\)的么??? int T;cin>>T; while(T--){ cin>>n>>a>>b>>k; puts(n/a+n/b-n/(a*b/__gcd(a,b))*2>=k?"Win":"Lose"); } \(CHEFING\) 咕咕 int T;scanf("%d",&T); while(T--){ sc…
传送门 \(CHNUM\) 显然正数一组,负数一组 for(int T=read();T;--T){ n=read(),c=d=0; fp(i,1,n)x=read(),x>0?++c:++d; if(!c)c=d;if(!d)d=c; if(c<d)c^=d^=c^=d; printf("%d %d\n",c,d); } \(CHDIGER\) 从原来的数列中选出字典序最小的上升子序列,往后面加\(d\)就行了 //minamoto #include<bits/st…
目录 @description@ @solution@ @accepted code@ @details@ @description@ 为了保护环境,p6pou建设了一个垃圾分类器. 垃圾分类器是一个树形结构,由 n 个垃圾桶和 n-1 条双向传送带组成. 垃圾处理器的编号为 1, 2, ..., n,每条传送带都可以花 1 秒钟将垃圾从一个垃圾桶输送到另一个垃圾桶. 垃圾投放点是编号为 r 的垃圾桶,垃圾总是投放在这里. 垃圾共有 n 种,编号也是 1, 2, ..., n. 编号为 i 的垃…
传送门 \(PEWDSVTS\) 我哪根筋不对了要把所有可行的拿出来\(sort\)一下--还有忘开\(long\ long\)真的好难受-- int main(){ // freopen("testdata.in","r",stdin); for(int T=read();T;--T){ n=read(),A=read(),B=read(),X=read(),Y=read(),Z=read(),top=sum=0; d=(Z-B+Y-1)/Y,res=Z-1ll*…
link 题面真简洁 qaq C Stones 最终一定是连续一段 . 加上连续一段 # .直接枚举断点记录前缀和统计即可. #include<bits/stdc++.h> #define rep(i,x,y) for (int i=(x);i<=(y);i++) using namespace std; ; int n,cnt0[N],cnt1[N],ans; char s[N]; int main(){ scanf(); rep (i,,n) cnt0[i]+=s[i]=='#',c…
传送门 \(C\ Stones\) 最后肯定形如左边一段白+右边一段黑,枚举一下中间的断点,预处理一下前缀和就可以了 int main(){ // freopen("testdata.in","r",stdin); n=read(),read(s),res=0x3f3f3f3f; fp(i,1,n){ sum[i][0]=sum[i-1][0],sum[i][1]=sum[i-1][1]; ++sum[i][s[i]=='#']; } fp(i,0,n)cmin(r…
传送门 \(div2\)那几道题不来做了太水了-- \(DPAIRS\) 一个显然合法的方案:\(A\)最小的和\(B\)所有连,\(A\)剩下的和\(B\)最大的连 算了咕上瘾了,咕咕咕 const int N=2e5+5; int A[N],B[N],id[N],mxb,mxa,n,m; int main(){ // freopen("testdata.in","r",stdin); n=read(),m=read(),A[0]=inf,B[0]=-inf; f…
传送门 \(Maximum\ Remaining\) 对于两个数\(a,b\),如果\(a=b\)没贡献,所以不妨假设\(a<b\),有\(a\%b=a\),而\(b\%a<a\).综上,我们可以发现答案就是严格次大值 //minamoto #include<bits/stdc++.h> #define R register #define fp(i,a,b) for(R int i=(a),I=(b)+1;i<I;++i) #define fd(i,a,b) for(R i…
传送门 \(A\ Regular\ Triangle\) 咕咕 \(B\ Red\ or\ Blue\) 咕咕咕 \(C\ Snuke\ the\ Wizard\) 我可能脑子真的坏掉了-- 容易发现不管怎么移动相对顺序都是不变的,那么我们二分找到最右边的会从左边掉出去的点,它左边所有点也会从左边掉出去,最左边的会从右边掉出去的点同理 //minamoto #include<bits/stdc++.h> #define R register #define fp(i,a,b) for(R in…
D1T1-格雷码 题中给出了构造格雷码的方法. $solve(n,k)$表示求出$2^n$意义下排名为$k$的格雷码, 只要比较一下考虑最高位的0/1取值就好了. 部分分提示了要开$unsigned\ long\ long$,注意一下就可以了. D1T2-括号树 子序列问题是便于处理的,只要处理以每个点结尾的合法序列,作树上前缀和就好了. 然而合法括号序列也并不简单. 判断一个括号序列是否合法的方法是, 视左右括号分别为+1,-1. 判断是否满足前缀和不小于0,并且总和为0. 套用这个思路,考场…
传送门 \(REDONE\) 贡献可以拆成\(X(Y+1)+Y\),那么一个数\(x\)的贡献对最终答案的贡献就是\(x(a_1+1)(a_2+1)...\),那么最终答案肯定是\(\sum\limits_{i=1}^ni\prod\limits_{j=1}^{i-1}(j+1)\)最优 void init(){ fac[0]=1; fp(i,1,1e6)fac[i]=mul(fac[i-1],i+1),ans[i]=add(ans[i-1],mul(i,fac[i-1])); } int ma…
传送门 \(MSV\) 设个阈值搞一搞就行了 //quming #include<bits/stdc++.h> #define R register #define pb emplace_back #define fp(i,a,b) for(R int i=(a),I=(b)+1;i<I;++i) #define fd(i,a,b) for(R int i=(a),I=(b)-1;i>I;--i) #define go(u) for(int i=head[u],v=e[i].v;i…
传送门 \(CHEFK1\) 首先连出一个环和所有的自环,剩下的每次按\(n\)个一连就可以了 //quming #include<bits/stdc++.h> #define R register #define fp(i,a,b) for(R int i=(a),I=(b)+1;i<I;++i) #define fd(i,a,b) for(R int i=(a),I=(b)-1;i>I;--i) #define go(u) for(int i=head[u],v=e[i].v;…
题面 \(SUMAGCD\) 先去重,易知答案一定是一个数单独一组剩下的一组,前缀后缀\(gcd\)一下就行了 //quming #include<bits/stdc++.h> #define R register #define inline __inline__ __attribute__((always_inline)) #define fp(i,a,b) for(R int i=(a),I=(b)+1;i<I;++i) #define fd(i,a,b) for(R int i=…
Day0 打牌 Day1 \(T1\) 没开\(ull\), 不知道有几分 \(T2\) \(N^2\)暴力+链, 没搞出树上做法, \(70\)分 \(T3\) 标准\(10\)分( 感觉今年省一稳没了, 然后去浙大骑自行车逛了一圈, 晚上回宾馆打牌 Day2 没想到翻盘了 \(T1\) 反面做, \(N^2M\)的DP, 调了会过大样例, \(100\)分 \(T2\) 先写个\(N^3\)的暴力DP, 看起来像是决策单调? 然后写出来拍上了, 高精度不香, 懒得打--\(88\)分 \(T…
标题没错,今年就是我的最后一年了. 才高一啊,真不甘心啊. DAY1(之前的看前几篇博客吧) T1 现在没挂 T2 貌似是树形DP,跑到80000的深度时挂了,于是特判了链的情况,大样例过了,现在没挂. T3 一开始觉得有60分部分分,后来发现不可做,于是打了可能40分部分分,结果挂了30分,剩下的目前没挂. 一般发挥吧,感觉考的还行? 主要是题目难没区分度吧(笑哭) DAY2 翻车喽. 本来觉得day1打得挺好于是day2就可以放松了...然后就真的放松了... T1 24 T2 24 T3…
队友牛逼!带我超神!蒟蒻的我还是一点一点的整理题吧... Dragon Ball I 这个题算是比较裸的题目吧....学过图论的大概都知道应该怎么做.题目要求找到七个龙珠的最小距离.很明显就是7个龙珠先后去的排列,然后用dijkstra预处理出来每个龙珠到所有其他的点的最短距离啊.最后dfs暴力枚举排列统计答案就行.这里有一些小的细节问题题目中最大的距离为2e9,所以0x3f可能有点不够,还真是细节决定成败啊,不亏我Wrong了一发! //不等,不问,不犹豫,不回头. #include<bits…
目录 #1. A + B Problem #2. Hello, World! #3. Copycat #4. Quine #7. Input Test #100. 矩阵乘法 #101. 最大流 #102. 最小费用流 #103. 子串查找 #104. 普通平衡树 #108. 多项式乘法 #119. 非负权单源最短路 #130. 树状数组 1 :单点修改,区间查询 #139. 树链剖分 #161. 乘法逆元 2 #556. 「Antileaf's Round」咱们去烧菜吧 #2030. 「SDOI…
这道题跟CSP/S 2019 D1T1有点像. 我们先来模拟一下 \(n=4\) 的情况, 不难得出,最后的衣架挂钩顺序: 下标: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 顺序: 1 9 5 13 3 11 7 15 2 10 6 14 4 12 8 16 我们发现,得到的顺序构成的序列中左半部分全是奇数,右半部分全是偶数.我们把它分开: 1 9 5 13 3 11 7 15 2 10 6 14 4 12 8 16 奇数部分每个数 \(+1\) 再 \(\d…
想到正解,不一定赢 全部打满,才是成功 Day 0 首先很感谢各位朋友送的贺卡!!! 早上10点的高铁.今年可以直接在汕头站坐高铁不用专门跑到潮汕站了,1h->15min车程,巨大好评. 虽然离 CSP - S 2019 Day 1 只有一天了,不过内心却挺平静的,这点上比去年来考 NOIP 时好多了,去年是抱着不拿一等就得回去全心学中考的心理来的,今年思想上并没有什么包袱,于是该玩玩该吃吃. 动车上白嫖了ll一碗和味道,虽然香菇鸡肉味的不是很好恰,不过加上自己那碗好歹吃了个半饱(x 今年居然不…
EOJ Monthly 2019.2 题解(B.D.F) 官方题解:https://acm.ecnu.edu.cn/blog/entry/320/ B. 解题 单测试点时限: 2.0 秒 内存限制: 1024 MB “我把房门上锁,并非为了不让她进去,而是为了防止自己逃到她身边”. 她又被数学难住了.QQ 小方当然是不会对女生说”不”的. 她的数学题是这样的,她得到了一个十进制大整数,这个大整数只包含 1 - 9 这 9 个数字. 现在,要求选出其中连续的一段数字,把其他未被选中的数字全部变成 …
「ZJOI2019」&「十二省联考 2019」题解索引 「ZJOI2019」 「ZJOI2019」线段树 「ZJOI2019」Minimax 搜索 「十二省联考 2019」 「十二省联考 2019」异或粽子 「十二省联考 2019」字符串问题 「十二省联考 2019」春节十二响…
AtCoder ExaWizards 2019 简要题解 Tags:题解 link:https://atcoder.jp/contests/exawizards2019 很水的一场ARC啊,随随便便就ABCDE了,F最后想到了还没有写出来. D题花了太久时间所以只有Rank31,我是真的菜. 嘿嘿嘿,上述装逼方式是我最为反感的机房里的言语,既然快退役了,也就学一学,感受一下机房里dalao们怎么样装逼一时爽.一直装逼一直爽,听者一时丧,一直听一直丧的快感咯 有意思的题应该是DE了. A Regu…
先说一下这次的感受吧,我们考场比较乱,开始比赛了,还有的电脑有故障,(向这些人发出同情),第一次认真参加比赛,真正比赛的时候感觉没有那么正式,很乱,各种小问题,(例如博主就没找到题目在哪里,找到后又不知道解压密码,过了十分钟,才正式开始做题..),好气自己赛前没有好好看BFS,不会记录路径啊,迷宫题凉凉了,然后没好好读题数的分解又凉了,太蒟蒻,灵能传输又凉凉了. 认真读题真的很重要,说的很对,阅读理解杯,读懂了事半功倍,读不懂寸步难行. 试题 A: 组队 [问题描述] 作为篮球队教练,你需要从以…
赛后总结: T:今天状态一般,甚至有点疲惫.然后12点比赛开始,和队友开始看题,从最后往前面看,发现数学题公式看不懂.然后发现队友已经双开做1001和1006了,我看着1007有人A,开始做1007.看了一会发现这是一个简单签到题,构造一下就完事了.然后一遍A,结束.在他们看1008的时候,我回去看1002和1003,1002的题意没看清楚,队友说的也有点模糊,然后不知道怎么下手.开始看1003,因为A的人真的好多呜呜呜.从AC自动机一直re转为后缀自动机,然后不会.结束了.今天对队伍的贡献太少…
扶苏让我记录他AK CSP 的事实 ZAY NB!!! "你不配" 两年半的旅行结束了,我背着满满的行囊下了车,望着毫不犹豫远去的列车,我笑着哭了,笑着翻着我的行囊-- 游记 Day -1 考试前一周开始停课并且崴了脚(很绝望,人生第一次崴脚,一直到现在都没有好),很迷茫,不知道每天该干些什么.几天做了些题,向扶苏请教请教问题,看着奥赛室里陌生的人,心中充满孤独与希冀,与惶惶不知所措. DAY 0 上午去奥赛室的路上看到扶苏像个傻子似的向我挥舞他的电脑包--在奥赛室随便摸了摸键盘就坐车…
2019年湖南省大学生计算机程序设计竞赛 (HNCPC2019) 简要题解 update10.01 突然发现叉姐把这场的题传到牛客上了,现在大家可以有地方提交了呢. 不知道该干什么所以就来水一篇题解 题解全是根据印象口胡的,代码是不可能重新写的,这辈子不可能重新写的. A description 有一个\(n\times m\)的全\(0\)矩阵,选择一个子矩阵全部修改成\(1\),现在给出修改后的矩阵,问是否存在合法修改方案. \(1 \le n, m \le 10.\) solution 找…