vijos1023 Victoria的舞会3
来源:互联网 发布:京东店铺销量数据 编辑:程序博客网 时间:2024/06/05 18:31
这道题我用的是floyd预处理,并查集的思想。虽然实现很简单,但是有很多细节问题还是值得认真研究的。
https://www.vijos.org/p/1023
先上一下我之前错的代码:
//#include<bits/stdc++.h>#include<iostream>#include<algorithm>#include<cmath>#include<cstdio>#include<map>#include<vector>#include<set>#include<cstring>#include<sstream>#include<cctype>#include<stack>#include<queue>#define ll long long#define st string#define INF 100000000#define N 1005#define lc 2*k#define rc 2*k+1#define mem(x) memset(x,0,sizeof(x))using namespace std;int Max(int _,int __){ return _>__? _:__;}int Min(int _,int __){ return _<__? _:__;}bool a[205][205];int n;void floyd(){for(int k=1;k<=n;k++) {for(int i=1;i<=n;i++) {for(int j=1;j<=n;j++) {if(a[i][k]&&a[k][j]) a[i][j]=1;}}}}bool v[205];int main(){//freopen(".in","r",stdin);//freopen(".out","w",stdout);mem(a);mem(v);scanf("%d",&n);for(int i=1;i<=n;i++) {int x;while(scanf("%d",&x)&&x) a[i][x]=1;}floyd();int ans=0;for(int i=1;i<=n;i++) {if(!v[i]) {for(int j=1;j<=n;j++) {if(a[i][j]&&!v[j]) {v[j]=1;//printf("%d %d\n",i,j);}}v[i]=1;ans++;}}printf("%d\n",ans);return 0;}/*18011 000016 014 00002 13 0011 07 006 000*/
floyd的时候一定会出现a[1][1]=1的情况,而实际上这并不应该。解决方法又是特别智障。
//#include<bits/stdc++.h>#include<iostream>#include<algorithm>#include<cmath>#include<cstdio>#include<map>#include<vector>#include<set>#include<cstring>#include<sstream>#include<cctype>#include<stack>#include<queue>#define ll long long#define st string#define INF 1e9#define N 1005#define lc 2*k#define rc 2*k+1#define mem(x) memset(x,0,sizeof(x))using namespace std;bool a[205][205];int n;void floyd(){for(int k=1;k<=n;k++) {for(int i=1;i<=n;i++) {for(int j=1;j<=n;j++) {if(a[i][k]&&a[k][j] && i!=j) a[i][j]=1;}}}}bool v[205];int main(){mem(a);mem(v);scanf("%d",&n);for(int i=1;i<=n;i++) {int x;while(scanf("%d",&x)&&x) a[i][x]=1;}floyd();int ans=0;for(int i=1;i<=n;i++) if(!v[i]) for(int j=1;j<=n;j++) if( a[i][j] && !v[j])v[j]=1;for (int i=1;i<=n;i++)if (!v[i]) ans++;printf("%d\n",ans);return 0;}/*18011 000016 014 00002 13 0011 07 006 000*/
这么智障的题,我本来打算愉悦身心的。结果还是贾老师帮忙调的。无语……
阅读全文
0 0
- vijos1023 Victoria的舞会3
- Vijos Victoria的舞会3
- Victoria的舞会
- Victoria的舞会1
- Vijos1022. Victoria的舞会2
- VIJOS p1023 Victoria的舞会3 终于AC了!!!
- |Vijos|图论强连通分量|P1023 Victoria的舞会3
- Vijos-P1021 Victoria的舞会1
- [Vijos P1022]Victoria的舞会2 Tarjan
- 【vijos】P1022 Victoria的舞会2
- |Vijos|贪心|P1021 Victoria的舞会1
- Vijos P1021 Victoria的舞会1
- Vijos 1021题:Victoria的舞会1
- vijos P1021,P1022,p1023 Victoria的舞会1,2,3题解
- 【图论+贪心】 Vijos P1021 Victoria的舞会1
- 【强连通】Victoria的舞会2 -- Vijos 1022,1023
- vijos 1002 Victoria的舞会2 强连通分量
- tarjan题目(1)Victoria的舞会2
- 抓取微信公众号文章,亲测有效
- TensorFlow实现center loss
- Eclipse快捷键-----原来Eclipse完全不许用鼠标的
- 判断php变量是否为空/已定义
- Android 进阶笔记。
- vijos1023 Victoria的舞会3
- solr初识
- java多线程详解(并发,并行,同步)
- 云笔记项目 Unit04
- LINUX环境下Nginx与php-fpm安装部署
- 压力测试-步骤
- 初级着色器
- 【Java基础之网络编程】代码库(七)
- Findbugs 缺陷详解与英文代号的对照表