分类: OI/ACM/算法题题解

7 篇文章

题解 CCF-CSP-18-C 化学方程式 AcWing 3284
题目传送门 题解 这个题是一道恶心人的大模拟,如何处理检查配平情况呢?要找出所有的原子,计数,然后比对等号两边各种原子的数量。 处理原子可以用 unordered_map,但是效率不高切更难写,我们可以开一个 $27*27$ 的数组,把原子转换为数组下标,这样更高效。 关于括号的嵌套,我的想法是开一个 tag 数组,先扫一个化学式,确定括号的位置以…
Codeforces Round #746 (Div. 2)(1592)
比赛链接:Codeforces Round #746 (Div. 2) AB 题就不说了,签到。 A题提交 B题提交 C 假设所有节点的异或和为tot,那么有两种情况 tot = 0,那么此时一定可以被分成两份。tot != 0,那么假设可以分成k份,那么最终分出来的每一块异或和就是tot,并且相邻的三份tot可以合为一份tot,异或和不变,最后只…
AtCoder Beginner Contest 221
//A.cpp #include<bits/stdc++.h> using namespace std; inline int read(){ int x=0,f=1; char ch=getchar(); while(ch<'0'||ch>'9') if(ch=='-') f=-1,ch=getchar(); while(ch>='0…
题解CF1574B
https://codeforces.com/problemset/problem/1574/B 此题比较考思维。 首先abc能组成出来的ans范围一定是一个区间。这个很容易理解,调整两个字母的位置就可以对ans作出1个大小的调整。 其次ans最大的范围可以求。就是a+b+c-3(依次排开) 剩下ans最小的范围。我们不妨设abc最大值为a,a要么…
题解 20CCF-CSP-T3点亮数字人生
题目传送门 两次拓扑排序,剩下的就是码力了。 小插曲:用auto遍历会T飞。 #include<bits/stdc++.h> using namespace std; inline int read(){ int x=0,f=1; char ch=getchar(); while(ch<'0'||ch>'9'){ if(ch=='-')…
9月CCF-CSP游记与杂感
今日去了计院里面参加了CCF-CSP考试,最后得分220/500,只能算一般般吧,在各路大佬里面算是矮了一截。 在打比赛的时候我就很明显地感觉到,一年多没有碰过算法竞赛的我,在重新面对一道道题时有多么吃力。T2的做法其实很容易想到,但是我却在写代码和调试上面花费了大量的时间。T3模拟题做了3h一分未得,先是快读出问题,后是莫名其妙wa,以至于我T4…
AcWing 3412. 邻域均值
直接暴力前缀和 #include<bits/stdc++.h> using namespace std; inline int read(){ int x=0,f=1; char ch=getchar(); while(ch<'0'||ch>'9'){ if(ch=='-') f=-1; ch=getchar(); } while(ch…