acm
文章平均质量分 65
jokersio
这个作者很懒,什么都没留下…
展开
-
codeforces round705 解题报告
codeforces round705 解题报告 A 贪心,一眼题 #include<bits/stdc++.h> #define MAXN 2100 using namespace std; int n, k, T,num,a[MAXN]; int main() { cin >> T; while(T--) { cin >> n >> k; num = max(0, n - k); if原创 2021-03-11 17:12:48 · 95 阅读 · 0 评论 -
c++ STL汇总简易版(updating)
c++ STL汇总简易版(updating) 目录c++ STL汇总简易版(updating)前言vector插入访问删除排序,reverse等map 前言 因为笔者从来没用系统学习过stl里的东西,导致很多时候的代码非常冗长,在这个篇章里面,笔者会系统地总结一些常用的stl函数和结构,以便以后复习。会不定期更新。 vector 可简单理解为动态开大小的数组 插入 for(int i=1;i<=5;i++) q.push_back(i*10);////在vector最后插入元素 q.insert原创 2021-03-10 09:51:12 · 129 阅读 · 0 评论 -
codeforces educational round 105 题解
codeforces educational round 105 题解 A 一串只带有A,B,C的字符串,用“(”或“)”替换其中的字母,问能否构成正则表达式 验证正则表达式的思路很常规,见左括号加1,右括号减1,中间不能出现负号,且最后的结果为0。枚举A,B,C分别为“(”或“)”的情况,共8种。 #include<bits/stdc++.h> #define MAXN 200000 using namespace std; int T,val[5][10]; string s; int原创 2021-03-06 19:51:04 · 93 阅读 · 0 评论 -
codeforces round704(div 2)题解
codeforces round704(div 2)题解 A 签到 #include<bits/stdc++.h> #define MAXN 200000 #define int long long using namespace std; inline int re() { char f=getchar(); int x=0,k=1; while(f>'9'||f<'0') { if(f=='-') k=-1; f=g原创 2021-02-23 21:54:44 · 300 阅读 · 1 评论 -
ac自动机模板及感悟
ac自动机模板感悟 今天第一次打出来了ac自动机这个模板。其一直被称为树上的kmp,但我觉得这句话很容易误导人,还是有些许不同。 首先给一篇csdn上的讲解ac自动机 构造fail数组 他的核心是构造fail数组(即kmp中的nxt),用bfs的方法,先让第一层的所有结点fail只想root,同时将其入队列。入队列后的操作较为麻烦,文字描述比较苍白,我上图和代码。 void getfail() { queue<int> q; for(int i=0;i<26;i++) if(ch原创 2021-02-23 10:48:24 · 69 阅读 · 0 评论 -
线段树扫描线模板及感悟
线段树扫描线模板及感悟 扫描线问题算是一个线段树问题的简单变种。模型是在一个平面内给n个有重叠部分的矩形,求其覆盖的面积。思路是将矩形的上下边界看作扫描线,同时离散化x坐标用线段树维护,维护的是离散后的每个区间不是离散后的点,是(n-1)个!!!!! 维护两个值,一个是cnt即覆盖在其上方的矩阵数量(可通过扫描线是矩形的上边界还是下边界,从而+1/-1来判断),另一个是sum即每个区间内被覆盖的长度。而每次增加的面积就是sum[1]乘以两条扫描线之间的高度差。 需要注意的是,因为我们每次只需要的是sum[1原创 2021-02-23 10:42:50 · 113 阅读 · 0 评论 -
atcoder dp专题(updating)
atcoder dp专题 E 是一个背包问题的变式,因为其背包容量达到了1e9,所以常规的一维数组无法存下,而每个物品的价值很小,所以我们将一维数组的下标定义为物品的价值。从寻找一定空间的最大价值,变式为一定价值所需的最小空间。 for(int i=1;i<=n;i++) for(int j=MAXN-1;j>=c[i];j--) { dp[j]=min(dp[j],dp[j-c[i]]+w[i]); if(dp[j]<=m)原创 2021-02-02 10:34:20 · 747 阅读 · 0 评论 -
codeforces round696(div 2)题解(A-D)
codeforces round696(div 2)题解(A-D) 这是笔者的第一次cf经历,发现自己真的是个菜逼,未来之路任重且道远。考试的时候写了A,B两个题,之后补了C,D。 A 对于两个0/1串,给定其串的长度和一个串a,求一个串b使,sum(a+b)=c最大,对于sum求得的新串c,规定c可以出现2,且c中的相同数字会被取代为一个。 很裸的一个贪心,对于b串的每一位从高位依次向下枚举,首选为1,若1能保证c中不相同,则令其为1,反之则为0。 #include<bits/stdc++.原创 2021-01-22 17:50:12 · 161 阅读 · 1 评论