ABC-399(a-f)
总结为掉分,掉得不应该。 教训是下次多读几遍题目,知道题目要做什么 A 汉明码,直接找不同 B 给数字排序,打得有点繁琐了 C 并查集,打得也是有点繁琐。 重要思想:在并查集的一开始,把每一个看成一个连通块,每连接一条边,连通块就减少一个。 总结:相应的,最后用总点数减去剩下的连通块,就是连的边数 D 一开始直接看样例,没有懂样例的最后一个例子,本人也因没认真读懂题目,一直在找最小换座位次数。 题意:找到第一次出现和第二次出现都相邻的点对数 方法:开一个数组维护一个数第一次出现的位置,当数x第一次出现的位置,和x前一位数 y ,当且仅当 x和y第一次出现的位置相差1的时候才有统计答案。特殊地,(1) 如果y前一个位置的是他自己第一次出现的位置,这个时候的不能统计; (2) 如果刚统计完就是自己也不能统计; 1234567891011121314151617181920212223242526272829303132333435363738394041424344#include<bits/stdc++.h>using namespace std;type...
ABC-376(a-e)
TasksABC376 总结,acde题都能够在赛事大概读通题目,b题没看明白, 我感觉可能是自己的堆栈以及bfs还不够熟练 A 最近总是A就wa,好好反思一下哈 1234567891011121314151617181920212223242526272829303132#include<bits/stdc++.h>using namespace std;signed main(){ ios::sync_with_stdio(false); cin.tie(0); int n,c; cin>>n>>c; vector<int> a(n+1); int res=1; for(int i=1;i<=n;i++){ cin>>a[i]; } int last=a[1]; for(int i=2;i<=n;i++){ if(a[i]-last>=c){ res++; last=a[i]; } } cout<<res<<endl; return 0;} B 大...


