hihocoder 1158 質數相關(二分圖匹配 最大獨立集)
題目連結:傳送門
題意:
給定你一個為n的集合選定一個最大的子集使得不存在 ai*p=aj的情況,p為一個素數。
分析:
對於所有的ai*p=aj的情況建圖,求出這個二分圖的最大匹配,然後n-最大匹配數/2即可。
程式碼如下:
#include <iostream>
#include <cstring>
#include <cstdio>
#include <algorithm>
using namespace std;
const int maxn = 1010;
const int N = 500000+10;
int a[maxn];
int prime[N],cnt;
bool is[N];
void get_prime() {
memset(is,0,sizeof(is));
cnt = 0;
is[1]=1;
for(int i=2; i<N; i++) {
if(!is[i]) {
prime[cnt++]=i;
for(int j=i+i; j<N; j+=i)
is[j]=1;
}
}
}
bool vis[maxn];
int link[maxn],head[maxn*2];
int ip;
struct nod {
int to;
int next;
} edg[maxn*maxn];
void init1() {
ip=0;
memset(head,-1,sizeof(head));
}
void add(int u,int v) {
edg[ip].to=v;
edg[ip].next=head[u];
head[u]=ip++;
}
bool dfs(int u) {
for(int i=head[u]; i!=-1; i=edg[i].next) {
int v=edg[i].to;
if(!vis[v]) {
vis[v]=1;
if(link[v]==-1||dfs(link[v])) {
link[v]=u;
return true;
}
}
}
return false;
}
int max_match(int n) {
int ans = 0;
memset(link,-1,sizeof(link));
for(int i=1; i<=n; i++) {
memset(vis,0,sizeof(vis));
if(dfs(i)) ans++;
}
return ans;
}
int main() {
get_prime();
int t,n,cas=1;
scanf("%d",&t);
while(t--) {
scanf("%d",&n);
for(int i=1; i<=n; i++) {
scanf("%d",a+i);
}
init1();
sort(a+1,a+1+n);
for(int i=1; i<=n; i++) {
for(int j=i+1; j<=n; j++) {
if(a[j]%a[i]==0&&!is[a[j]/a[i]]) {
add(j,i);
add(i,j);
}
}
}
int mmax = max_match(n);
printf("Case #%d: %d\n",cas++,n-mmax/2);
}
return 0;
}
/****
3
5
2 4 8 16 32
5
2 3 4 6 9
3
1 2 3
***/
相關文章
- 2023北航校賽-E 二分圖最小點覆蓋=n-最大獨立集
- 獨立模型的相關需求模型
- 二分圖的最大匹配、完美匹配和匈牙利演算法演算法
- 二分圖的最大匹配的匈牙利演算法演算法
- 二分圖最大匹配問題匈牙利演算法演算法
- 1.1.3.3 最小割之最小權覆蓋集、最大權獨立集
- 《啊哈!演算法》我要做月老 ——二分圖最大匹配演算法
- HDU 2063 匈牙利演算法二分圖的最大匹配演算法
- oracle最大連線數相關Oracle
- 採集Prestashop獨立站REST
- (原)獨立需求與相關需求-讀書筆記筆記
- hdu5090 匈牙利演算法二分圖最大匹配問題演算法
- PostgreSQL空間獨立事件相關性分析二-人車擬合SQL事件
- 求最大質因數
- POJ - 3041 Asteroids 【二分圖匹配】AST
- 對匈牙利演算法理解——對二分圖進行最大匹配的演算法演算法
- 演算法學習之路|二分圖的最大匹配—匈牙利演算法(Dfs實現)演算法
- 關押罪犯 擴充套件域並查集 帶權並查集 二分圖+二分套件並查集
- POJ 3041-Asteroids(二分圖匹配)AST
- KM演算法——二分圖的最佳匹配演算法
- 詳解匈牙利演算法與二分圖匹配演算法
- hihocoder1224 賽車(樹的深度相關)
- 特徵向量/特徵值/協方差矩陣/相關/正交/獨立/主成分分析/PCA/特徵矩陣PCA
- Win10怎麼禁用獨立顯示卡 win10獨立顯示卡的關閉方法Win10
- 文字匹配相關方向打卡點總結
- 國內最大獨立保險科技平臺水滴公司正式登陸紐交所
- MySQL 5.5客戶端字符集相關引數MySql客戶端
- POJ 1325-Machine Schedule(二分圖匹配-匈牙利演算法)Mac演算法
- poj2400 KM演算法二分圖的完美匹配演算法
- 獨立站運營——獨立站的3種搭建方式
- Hazel 5:變身獨立應用,更有強大的列表及表格匹配功能
- 月老的難題&&二分圖最大匹配模板&&http://acm.nyist.net/JudgeOnline/problem.php?pid=239HTTPACMPHP
- 統計學三大相關係數之Pearson相關係數、Spearman相關係數
- 求二部圖最大匹配的匈牙利演算法演算法
- 什麼是獨立IP,獨立IP主機怎麼樣?
- hdu2255 二分圖的最佳匹配 KM演算法演算法
- 如何將獨立例項轉換成叢集例項EU
- win7如何關閉獨顯_win7禁用獨立顯示卡的方法Win7