bzoj1051[kosaraju算法]求强连通分量

之前一直用的是tarjan第一次学习到这个来试一下。

唔,就是裸的算法,然后如果出度为0的点只有一个,输出这个点的大小。

#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<queue>
#include<stack>
#define mm 200004
#define mn 10020
using namespace std;
stack<int>s;
queue<int>q;
struct ding{int to,next,sum;
}edge[mm],edge2[mm];
struct ding2{int xx,yy;
}a[mm];
int vis[mn],now[mn],ans,head[mn],head2[mn],node[mn],size[mn],num;
int ru[mn],n,m,vv;
bool cmp(ding2 k1,ding2 k2)
{return (node[k1.xx]==node[k2.xx]?node[k1.yy]<node[k2.yy]:node[k1.xx]<node[k2.xx]);}
void dfs(int x)
{if (vis[x]) return;vis[x]=true;for (int i=head[x];i;i=edge[i].next) dfs(edge[i].to);s.push(x);
}
void redfs(int x)
{if (node[x]) return;node[x]=num; size[num]++;for (int i=head2[x];i;i=edge2[i].next) redfs(edge2[i].to);
}
void add(int u,int v,ding*g,int*f)
{int p=++g[0].sum;g[p].to=v; g[p].next=f[u];f[u]=p;    
}
int main()
{//freopen("cow4.in","r",stdin);//freopen("cow4.out","w",stdout);scanf("%d%d",&n,&m);for (int i=1;i<=m;i++){scanf("%d%d",&a[i].xx,&a[i].yy);add(a[i].xx,a[i].yy,edge,head);add(a[i].yy,a[i].xx,edge2,head2);}for (int i=1;i<=n;i++) if (!vis[i])dfs(i);while (!s.empty()){if (!node[s.top()]) {num++; redfs(s.top());}s.pop();}for (int i=1;i<=m;i++) if (node[a[i].xx]>node[a[i].yy]){int t=a[i].xx;a[i].xx=a[i].yy;a[i].yy=t;}sort(a+1,a+1+m,cmp);int t1=0,t2=0;for (int i=1;i<=m;i++){ if ((node[a[i].xx]==t1)&&(node[a[i].yy]==t2)||(node[a[i].xx]==node[a[i].yy])) continue;t1=node[a[i].xx];t2=node[a[i].yy];ru[t1]++;}for (int i=1;i<=num;i++) if (ru[i]==0) ans=size[i],vv++;  if (vv==1) printf("%d\n",ans);else printf("0\n");return 0;
}

 

转载于:https://www.cnblogs.com/2014nhc/p/7598867.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/428712.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

1555C. Coin Rows

C. Coin Rows&#xff1a;题目 题意&#xff1a;仿佛是一道难的dp&#xff0c;但是因为Alice先走&#xff0c;走完bob想要最大化收益。 Alice走完后Bob要么一直往右走&#xff0c;要么一开始就下去然后往右走。#include <bits/stdc.h> using namespace std; #define int…

常见sql技巧

一、一些常见的SQL实践 &#xff08;1&#xff09;负向条件查询不能使用索引 select * from order where status!0 and stauts!1 not in/not exists都不是好习惯 可以优化为in查询&#xff1a; select * from order where status in(2,3) &#xff08;2&#xff09;前导模糊查询…

1466C. Canine poetry

C. Canine poetry&#xff1a;题目 题意&#xff1a;可以用任何小写英文字母替换其中的&#xff0c;使其没有回文子串 思路&#xff1a;如果两个相同就换&#xff0c;如果三个是回文也换&#xff0c;先看两个再看三个#include <bits/stdc.h> using namespace std; typed…

BZOJ 2768 [JLOI2010]冠军调查

还说还剩十分钟A一道水题&#xff0c;然后发现和善意的投票一模一样粘个代码过去直接A。。。 装作自己又写了一道题。 题面 //Twenty #include<cstdio> #include<cstdlib> #include<iostream> #include<algorithm> #include<cmath> #include<…

1420C1. Pokémon Army (easy version)

C1. Pokmon Army (easy version)&#xff1a;题目 题意&#xff1a;选择其中一部分&#xff0c;按照-依此计算&#xff0c;求总和 思路&#xff1a;找到局部最大值&#xff0c;然后减去局部最小值&#xff0c;依此找。#include <bits/stdc.h> using namespace std; type…

python学习笔记(五)缩进

python学习笔记&#xff08;五&#xff09;缩进 原作&#xff1a;http://www.cnblogs.com/vamei/archive/2012/05/29/2524706.html 笔记&#xff1a; #!/usr/bin/env python i 1 #把1赋值给i变量 x 2 #把2赋值给x变量 if i > 0: #如果i大于1x x 1#执行x1 print (x)#输出…

1443B. Saving the City

B. Saving the City&#xff1a;题目 题意&#xff1a;1是炸弹&#xff0c;引爆的同时引爆i-1&#xff0c;i1&#xff0c;埋一个炸弹的成本为b,引爆的成本为a 思路&#xff1a;首先如果有炸弹&#xff0c;必须引爆一次&#xff0c;然后往后遍历&#xff0c;看是引爆还是接上的…

【OpenCV函数】轮廓提取;轮廓绘制;轮廓面积;外接矩形

FindContours 在二值图像中寻找轮廓 int cvFindContours( CvArr* image, CvMemStorage* storage, CvSeq** first_contour, int header_sizesizeof(CvContour), int modeCV_RETR_LIST, int methodCV_CHAIN_APPROX_SIMPLE, CvPoint offsetcvPoint(0,0) ); image 输入的 8-比…

【AtCoder Regular Contest 082】Derangement

【链接】点击打开链接 【题意】 在这里写题意【题解】 贪心。连续一块的p[i]i的话,对答案的贡献就应该为(这个连续块的长度1)/2;长度为1的也正确.(也即两两相邻的互换位置。)【错的次数】 0【反思】 在这了写反思【代码】 #include <cstdio> #include <iostream> #…

1618D. Array and Operations

D. Array and Operations&#xff1a;题目 之前写的了&#xff0c;直接上答案&#xff01; #include <bits/stdc.h> #define int long long #define pII pair<int, int> #define endl "\n" #define fast ios_base::sync_with_stdio(0), cin.tie(0), cou…

kendo 服务端排序

z折腾了一天。。 参考 &#xff1a;https://docs.telerik.com/kendo-ui/api/javascript/ui/grid#configuration-columns.sortable.compare 关键代码 parameterMap: function(data, type) {if(data.sort) {var sortObj data.sort[0];typeSort sortObj.dir;typeName sortObj.f…

416B. Art Union

B. Art Union&#xff1a;题目 思路&#xff1a;dp那味道来了#include <bits/stdc.h> using namespace std; typedef long long ll; vector<ll> a((int)6e5); vector<ll> b((int)6e5); int g[50051][11]; int main() {int m,n;//画的数量&#xff0c;和画家…

Windows下编译TensorFlow1.3 C++ library及创建一个简单的TensorFlow C++程序

由于最近比较忙&#xff0c;一直到假期才有空&#xff0c;因此将自己学到的知识进行分享。如果有不对的地方&#xff0c;请指出&#xff0c;谢谢&#xff01;目前深度学习越来越火&#xff0c;学习、使用tensorflow的相关工作者也越来越多。最近在研究tensorflow线下采用 pytho…

665C. Simple Strings

C. Simple Strings&#xff1a;题目 思路&#xff1a;简单的离谱&#xff0c;就相同就换就行&#xff0c;哪有dp的事啊#include <bits/stdc.h> using namespace std; typedef long long ll; vector<ll> a((int)6e5); vector<ll> b((int)6e5); string str; i…

798B. Mike and strings

B. Mike and strings&#xff1a;题目 思路&#xff1a;纯暴力题&#xff0c;不想写&#xff0c;copy了别人代码#include<iostream> #include<string> using namespace std; void change(string &s){ss.substr(1)s.substr(0,1); } int main(){int n;cin>&g…

jquery ajax 数据传输

在 form表单中&#xff0c;需要发送给后台的是一串长数据&#xff0c;后台才能接受&#xff0c;而用户则只需要输入字符串中的一部分&#xff0c;这种情况下&#xff0c;就需要将用户输入内容&#xff0c;和剩余部分进行拼串&#xff0c;然后添加进 formData 中传输。另一种情况…

1315B. Homecoming

B. Homecoming&#xff1a;题目 思路&#xff1a;从后往前遍历就行了#include <bits/stdc.h> using namespace std; typedef long long ll; vector<ll> a((int)6e5); vector<ll> b((int)6e5); string str; int main() {int t;cin >> t;while (t--){in…

jquery datatable 获取当前分页的数据

使用jquery datatable 遇到分页分别求和时&#xff0c;找了半天才找到获取当前分页数据的方法&#xff0c;以此总结 var table$(#example).DataTable( {"pagingType": "full_numbers",} ); table.columns({page:current}).data();//当前页面里的数据 转载于…

870C. Maximum splitting

C. Maximum splitting&#xff1a;题目 这凭啥1300分&#xff1f;#include <bits/stdc.h> using namespace std; typedef long long ll; vector<ll> a((int)6e5); vector<ll> b((int)6e5); string str; int main() {int t;cin>>t;while (t--){int n;c…

useGeneratedKeys的用法

<!-- useGeneratedKeys"true"把新增加的主键赋值到自己定义的keyProperty&#xff08;id&#xff09;中 --> <insert id"insert" useGeneratedKeys"true" keyProperty"id" parameterType""> 转载于:https://www…