DAY 1
模拟
emmmm
哇塞,模拟暴力太快乐了
???
这是啥???乒乓球怎么打???嗯???还有分制???
orz
DAY 2
搜索,二分,背包
(啊只得了4分的暴力终于变成了200分的正解
DAY 3
背包,lower_bound
(导弹拦截里也有所应用
(stl大法好
(qwq原来那个背包的课件还是只看了01和完全
DAY 4
栈,队列,并查集,线段树,最小生成树,链表
(没错学了一堆图论还有数据结构
(虽然这道题大家都用堆但是我是因为学线段树才加这道题的,任务计划中呆了将近3个月终于a掉了
DAY 5
LCA,Dijkstra,匈牙利算法
(继续图论,蛮快乐的
(上课讲找对象还是很欢乐的
DAY 6
欧拉回路,st表,单调栈,单调队列
(单调栈的单调队列都令人头大
DAY 7
数论
(数论真的很难,组合数那道题,难倒了qq姐及dtx大佬
(哦而且组合数那道题大概懂了,但是不想再写一遍题解,so,flag还是倒了23333
DAY 8
en
终于来到了
良(凉)心模拟233333
难度
while(1)noip --?
我炸了dbq我太水了我不配坐在大佬旁边
t1
string
明明都想出来了求lcm
可是为什么没有暴力比对字符串???
明明不会t
你找个毛规律啊zz
#include<cstdio> #include<cmath> #include<iostream> using namespace std; #define maxn 3010 #define ll long long char s1[maxn],s2[maxn]; ll gcd(ll x,ll y) { if(y == 0) return x; return gcd(y,x % y); } ll lcm(ll x,ll y) { return x * y / gcd(x,y); } int main() { // freopen("string.in","r",stdin); // freopen("string.out","w",stdout); ll l,n,m,ans = 0; scanf("%lld%lld%lld",&l,&n,&m); for(int i = 1; i <= n; i++) cin >> s1[i]; for(int i = 1; i <= m; i++) cin >> s2[i]; //scanf("%s",s1); //scanf("%s",s2); /* for(int i = 1; i <= n; i++) for(int j = 1; j <= m; j++) if(s1[i] == s2[j]) ans = ans + (l / lcm(m,n)) * lcm(m,n)/(abs(i - j) + 1); */ ll k = lcm(m,n); int qwq = 1,qaq = 1; for(int i = 1; i <= k; i++) { if(s1[qwq++] == s2[qaq++]) ans++; if(qwq > n) qwq -= n; if(qaq > m) qaq -= m; } ans = ans * l / k; printf("%lld",ans); return 0; }
t2
大概就是斐波那契
然鹅,矩阵快速幂,我就这样不会写了【微笑【微笑【微笑
t3
path
最短路
(单向边嗷嗷嗷我锤死我自己好了
啊而且记录特殊路的方法也有问题
#include<cstdio> #include<queue> using namespace std; #define maxm 600010 #define INF 1000000000 #define inf 2147483647 #define maxn 100010 struct EDGE { int nxt,to,weight; } edge[maxm]; priority_queue<pair<int,int>,vector<pair<int,int> >,greater<pair<int,int> > >q; int head[maxn],cnt; int dis[maxn]; int total; bool vis[maxn]; void add(int x,int y,int z) { edge[++cnt].to = y; edge[cnt].nxt = head[x]; head[x] = cnt; edge[cnt].weight = z; } int main() { freopen("path.in","r",stdin); freopen("path.out","w",stdout); int a,b,n,s,t; scanf("%d%d%d%d%d",&n,&a,&b,&s,&t); for(int i = 1; i <= a; i++) { int x,y,z; scanf("%d%d%d",&x,&y,&z); add(x,y,z); } for(int i = 1; i <= b; i++) { int x,y; scanf("%d%d",&x,&y); add(x,y,INF); } for(int i = 1; i <= n; i++) dis[i] = inf; q.push(make_pair(0,s)); dis[s] = 0; // printf("%d",q.empty()); while(!q.empty()) { int u = q.top().second; q.pop(); if(vis[u]) continue; vis[u] = 1; for(int i = head[u]; i; i = edge[i].nxt) { int v = edge[i].to; // printf("qwq %d ",v); if(dis[v] > dis[u] + edge[i].weight) { dis[v] = dis[u] + edge[i].weight; // printf("qwq %d %d ",edge[i].weight,v); q.push(make_pair(dis[v],v)); // if(edge[i].weight == INF) // total++; } } } printf("%d %d",dis[t] / INF,dis[t] % INF); return 0; } /* 5 3 1 1 5 2 3 3 3 5 4 2 5 9 1 2 */
emmm这个代码也不知道对不对现这么放着吧
DAY 9
树形dp,hash,trie字典树
(开始大部分都是不会的东西了www
(trie树真的挺简单的
DAY 10
未完待续。。。
无论如何都要矫(xia)情(bai)一下
这几天,真的很棒,远离学习,远离课业,沉寂在电脑和代码中,真切地有了名为“宅”的感觉,虽然跟宅完全不同
但是这次寒假集训真的带给了我很多
比如八卦,比如jqe学长,比如爆炸的分数。。。
emmmm
夸一夸企鹅学长吧
他真的超认真,超负责,不停的备课讲课答疑debug
他笑起来很有感染力,课堂的氛围也很欢乐,还有经常换的似乎没什么区别但仍旧很帅气的衬衫
真的超喜欢了
这样美好的平衡,认真而快乐
希望,以后还能再见
(最后,我是不会说qe学长不让说教的比xx(只可意会不可言传)好的事的【划死