hdu 3335
来源:互联网 发布:ubuntu查看ssh端口 编辑:程序博客网 时间:2024/06/01 09:20
题解思路:
根据整除关系建立有向关系图,然后求最小覆盖路径,然后用m减去就是答案了。
代码:
#include<cstdio>#include<cstring>#include<algorithm>#include<cmath>#include<iostream>using namespace std;const int mx=1e3+10;typedef long long ll;using namespace std;ll n,m,k,s[mx];int cp[mx];bool pai[mx][mx],vis[mx];bool pipei(int x){for(int i=1;i<=m;i++){if(!vis[i]&&pai[x][i]){vis[i]=1;if(!cp[i]||pipei(cp[i])){cp[i]=x;return 1;}}}return 0;}int main(){ int t; scanf("%d",&t); while(t--){ memset(pai,0,sizeof(pai)); memset(cp,0,sizeof(cp)); scanf("%lld",&n); for(int i=1;i<=n;i++) scanf("%lld",s+i); sort(s+1,s+1+n); m = 1; for(int i=2;i<=n;i++) if(s[i]!=s[i-1]) s[++m] = s[i]; for(int i=1;i<=m;i++){ for(int j=i+1;j<=m;j++) if(s[j]%s[i]==0) pai[j][i] = 1; } int sum = 0; for(int i=1;i<=m;i++){ memset(vis,0,sizeof(vis)); if(pipei(i)) sum++; } printf("%d\n",m-sum); }return 0;}
阅读全文
0 0
- hdu 3335
- hdu 3335
- 最小路径覆盖 hdu 1151 hdu 3335
- HDU 3335 解题报告
- HDU 3335 Divisibility
- HDU-3335-Divisibility
- hdu(3335)Divisibility
- HDU 3335 Divisibility
- hdu 3335 Divisibility-暴力
- hdu
- hdu
- HDU
- hdu ()
- hdu
- hdu
- HDU
- HDU
- hdu
- 密码学技术初探
- Spring Test
- 查询日历表
- Python与c、Java、c#比较
- theano学习--theano.shared共享变量
- hdu 3335
- 2018校招迅雷测试岗笔试
- javascript中的with语句
- Cookie,LocalStorage与SessionStorage
- centos获取内核源代码
- setEchoMode()设置模式
- 简单导航+侧滑模板
- MySQL中函数CONCAT与GROUP_CONCAT
- redis那些事