摘要: $STL$乱搞过去的。 map<int,set<int>> mp; int n,m; int main() { cin>>n>>m; for(int i=0;i<n;i++) { int a,b; cin>>a>>b; mp[a].insert(b); mp[b].insert(a); } whil 阅读全文
posted @ 2021-03-04 22:11 Dazzling! 阅读(32) 评论(0) 推荐(0) 编辑
摘要: 题意 塔都市的警察局决定治理混乱,从城市中的两个帮派开始行动,Gang Dragon和Gang Snake。但是,警方首先需要确定犯罪分子属于哪个团伙。目前的问题是,两名罪犯,他们属于同一个帮派吗?您必须根据不完整的信息做出判断。(因为歹徒总是暗中行动。) 假设$N(N<= 105)$罪犯目前在塔都 阅读全文
posted @ 2021-03-04 22:03 Dazzling! 阅读(44) 评论(0) 推荐(0) 编辑
摘要: 拓展域并查集解决了一种多个有相互关系的并查集,放在一起考虑的问题。 一般的并查集应用一般就是判断在不在一个集合,拓展域并查集讲的是多个集合之间有相互关系,一般为相互排斥关系,判断是否在一个集合等。 首先对与最简单的并查集来说,如果两个是同一类,那么就p[pa]=pb对吧,但是对于两个相互排斥类的怎么 阅读全文
posted @ 2021-03-04 21:36 Dazzling! 阅读(446) 评论(0) 推荐(0) 编辑
摘要: 判断是否是合法拓扑序,水~。 const int N=1010; vector<int> g[N]; int din[N],tdin[N]; int n,m,q; int main() { cin>>n>>m; while(m--) { int a,b; cin>>a>>b; g[a].pb(b); 阅读全文
posted @ 2021-03-04 20:39 Dazzling! 阅读(38) 评论(0) 推荐(0) 编辑
摘要: 水~。 set<int> S; int n; int main() { cin>>n; for(int i=0;i<n;i++) { int x; cin>>x; if(x > 0) S.insert(x); } int res=1; while(S.count(res)) res++; cout< 阅读全文
posted @ 2021-03-04 20:25 Dazzling! 阅读(35) 评论(0) 推荐(0) 编辑
摘要: 水~,依旧是喜闻乐见的链表题。 题意 给出N个结点的地址address、数据域data以及指针域next,然后给出链表的首地址,要求去除链表上权值的绝对值相同的结点(只保留第-一个),之后把未删除的结点按链表连接顺序输出,接着把被删除的结点也按在原链表中的顺序输出。 const int N=1e5+ 阅读全文
posted @ 2021-03-04 17:53 Dazzling! 阅读(32) 评论(0) 推荐(0) 编辑
摘要: 先判断是否是clique,即判断是否任意两边都相连;之后判断是否是maximal,即遍历所有不在集合中的剩余的点,看是否存在一个点满足和集合中所有的结点相连,最后如果都满足,那就输出Yes表示是Maximal clique。 const int N=210; bool g[N][N]; int v[ 阅读全文
posted @ 2021-03-04 17:27 Dazzling! 阅读(31) 评论(0) 推荐(0) 编辑
摘要: 双指针写法,秒啊。 int n; int main() { string s; cin>>s>>n; for(int k=0;k<n-1;k++) { string res; for(int i=0;i<s.size();) { int j=i+1; while(j<s.size() && s[j] 阅读全文
posted @ 2021-03-04 16:40 Dazzling! 阅读(39) 评论(0) 推荐(0) 编辑
摘要: 水~。 const int N=1e5+10; struct Node { int scoreb,scorea,scoret; int score; int cnt; int rank; string school; bool operator<(const Node &W) const { if( 阅读全文
posted @ 2021-03-04 16:24 Dazzling! 阅读(16) 评论(0) 推荐(0) 编辑