2022年河南省第四届CCPC大学生程序设计竞赛
2022年河南省第四届CCPC大学生程序设计竞赛又是一场因为疫情被推迟的省赛,直到10.2才举行。
这次的题目是北航出的,题目质量确实不错,最后依旧是一题一牌的局面,写5题稳拿银,写六题就能拿金了,无奈我们队没有学换根dp,没有写出mex树(其实ac了改了好久的水管题之后就没多少时间了),最后dfs过水管那题还挺意外的,原因是memet超时还有一堆细节错误。当然开集合那道题的时候也卡住了,不知道当时怎么想的,把罚时直接拉到600多。最后过了5题,拿了银牌,只能说再接再厉吧。至少证明我们没有白学一年,但区域赛名额怕是不用想了,其实去了也只有打铁的份。
icpc网络赛第一场 H Step Debugging
H Step Debugging思路:把repeat看作(,library看作1,arithmetic忽略,for看作 ) ,乘上的是数字字符串,读到fin结束,在加上亿些小细节大致可以把原串处理成一个带有+- ()运算符的数字表达式,然后计算的表达式结果就是答案,计算模板可以参考*基本计算器III(力扣的付费题),赛后代码如下:
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566#include<bits/stdc++.h>#define int long longusing namespace std;const int mod=20220911;//注意取模int calculate(string s) { int n = s.size(), num = 0, curRes = 0, res = 0; char op = '+'; for (int i ...
树上的一些基本操作
树的直径(树的最长路)1.两次dfs找两端(无负边权)12345678910111213141516171819202122232425262728293031323334353637383940414243444546#include<bits/stdc++.h>#define int long longusing namespace std;const int N = 1010, M = 1010;int h[N], e[M], w[M], nxt[M], eidx, p, d[N], ans;void add(int u, int v, int weight){ // 添加有向边 u->v, 权重为weight e[eidx] = v; // 记录边的终点 w[eidx] = weight; // 记录边的权重 nxt[eidx] = h[u]; // 将下一条边指向结点u此时的第一条边 h[u] = eidx; ...
湖边夜宴
当夜晚拉下黑色的帷幕,湖边吹来一阵阵潮湿的风,小雨消解了夏日的酷暑,城市的灯光自湖对岸投射过来,一场”年轻人”的宴会已然坐满了同乡人。这是上班族们难得的惬意时光,是学生们繁重学业下的放松之处,我们在湖边欢歌畅饮说笑,谈论着自由与教育。这毕竟是一个黄金时代,长辈们的话题多是近年来的热点时政,以及投射在年轻人身上的希望。我们的心自然是十分年轻的,就像初生的朝阳,但我很敬佩那些游遍五湖四海,看遍社会冷暖心态依旧年轻的人。我想在他们的心里一定有一方伊甸的乐土,那里花开四季,树木常青。
2022.9.4
存图的三种方式
存图的三种方式邻接矩阵空间复杂度过高
123456789101112#include<bits/stdc++.h>const int V = 1000; //最大顶点数int mat[maxn][maxn];//开设二维数组来存矩阵int main(){ int i,j,w; memset(mat, 0, sizeof(mat)); //初始化操作假设权值为0表示没有该边 scanf("%d%d%d",&i,&j,&w);//输入边的信息:起点、终点、权重 mat[i][j] = w;// //增加顶点i到顶点j的权值为w的边 mat[i][j] = 0;//删除边 printf("%d",mat[i][j]);//查询边}
邻接表内存利用率较高,但重边不好处理
123456789101112#include<vector>using namespace std;const int V = 100000;// 最大顶点数vector<int> e[V];// 不考虑边权,存储类型为int ...