OpenJudge 7384(分成互质组)
来源:互联网 发布:淘宝卖家被投诉后果 编辑:程序博客网 时间:2024/06/06 17:12
应hfu要求,近几日整理搜索专题的内容,无意中翻出了一年前死活A不掉的一道不可做题(当时觉得)。看着自己的代码风格变化天翻地覆,无奈感叹时间飞逝。。。算了少矫情管他的先A了再说(ง •̀_•́)ง
先附上一年前WA(8/10)的代码
#include<stdio.h>int n,divide[15][10],sum[15]={0},t,a[15],num1,ans=0;int prime(int a,int b){ if (a==b) return 0; for (int s=2;s<=a/2;s++) if (a%s==0&&b%s==0) return 0; return 1;}void f(int p,int q){ if (ans!=0) return ; if (num1==n) { ans=q; return ; } int i; for (i=1;i<=q;i++) { int j; for (j=1;j<=sum[i];j++) if (prime(a[p],divide[i][j])==0) break; if (j==sum[i]+1) { divide[i][sum[i]+1]=a[p];sum[i]++;num1++; for (int k=1;k<=q-1;k++) for (int b=1;b<=q-k;b++) if (sum[b]<sum[b+1]) { for (int h=1;h<=sum[b+1];h++) { t=divide[b][h];divide[b][h]=divide[b+1][h];divide[b+1][h]=t; } t=sum[b];sum[b]=sum[b+1];sum[b+1]=t; } break; } } if (i==q+1) { divide[q+1][1]=a[p];sum[q+1]++;num1++; } if (i==q+1) f(p+1,q+1); if (i<q+1) f(p+1,q);}int main(){ scanf("%d",&n); for (int i=1;i<=n;i++) scanf("%d",&a[i]); divide[1][1]=a[1];sum[1]=1;num1=1; f(2,1); printf("%d",ans); return 0;}
再来看看一年后的今天1A的代码
#include<cstdio>#include<cstring>#include<iostream>#include<algorithm>#include<vector>using namespace std;int n;int a[12],cnt=0,mn=12;int gcd(int a,int b) { return !b?a:gcd(b,a%b);}vector<int> G[12];void dfs(int p) { if (p>n) {mn=min(mn,cnt);return ;} for (int i=1;i<=cnt;++i) { bool f=true; for (int j=0;j<G[i].size();++j) if (gcd(a[p],a[G[i][j]])^1) {f=false;break;} if (f) { G[i].push_back(p); dfs(p+1); G[i].pop_back(); } } ++cnt; G[cnt].push_back(p); dfs(p+1); G[cnt].pop_back(); --cnt;}int main() {// freopen("OJ 7384.in","r",stdin); scanf("%d",&n); for (int i=1;i<=n;++i) scanf("%d",&a[i]); dfs(1); printf("%d\n",mn); return 0;}
阅读全文
0 0
- OpenJudge 7384(分成互质组)
- POJ(7834)-----分成互质组(openjudge)
- 【openjudge】分成互质组
- 【openjudge】分成互质组
- noi.openjudge 7834题解 分成互质组(分层递归)
- Openjudge小学奥数--7834 分成互质组!
- [OpenJudge 7834]分成互质组 迭代加深+剪枝
- 分成互质组
- 分成互质组
- OpenJudge_P7834 分成互质组
- 7834:分成互质组
- 7834:分成互质组
- 【Openjudge】汉诺塔(递归)
- 【openjudge】小游戏(求助)
- 仙岛求药(openjudge)
- OpenJudge
- 【Openjudge】排队游戏(递归)
- 字符环(openjudge 2755)
- 51nod 1269 Devu and Flowers(容斥原理)
- Linux 下hosts文件详解
- AS 也能检测 Activity 内存泄露 | 吊打 OOM
- 为什么分页查询时一进页面就报NumberFormatException
- 堆排序<二>---利用顺序表完成
- OpenJudge 7384(分成互质组)
- 古力娜扎秒删合影 修改年龄成亮点,疑似打脸黑粉
- 如何安装ioncube扩展
- tomcat 修改 默认的 虚拟主机目录
- android系统数据业务知识点总结(二)
- C语言再学习之:数据类型整理
- 工厂方法模式
- Python基本规则详解
- leetcode691 Stickers to Spell Word 带记忆功能的回溯