uva 11205 - The broken pedometer

来源:互联网 发布:下载隐藏软件 编辑:程序博客网 时间:2024/05/17 07:14

原题

用增量构造法来生成子集。如果可以从个数由少到多生成子集,而不是按照字典序的话,那么可以更快得到答案。鉴于这样的考虑,当得到最小的子集个数,那么当前所需的个数大于最小的个数,就不用考虑其是否满足题意。这样做更快。

#include<stdio.h>#include<string.h>#include<stdlib.h>const int maxn=110;int B[maxn][20],min,A[20],n,p;int is_ok(int cur){for(int i=0;i<n;i++)  for(int j=i+1;j<n;j++)  {   int ok=1;   for(int k=0;k<cur;k++)      if(B[i][A[k]]!=B[j][A[k]]) {ok=0;break;}     if(ok) return 0;    } return 1;}void try_subset(int cur){if(min>cur &&is_ok(cur)) min=cur;int s=cur?A[cur-1]+1:0;for(int i=s;i<p;i++){A[cur]=i;try_subset(cur+1);}}int main(){#ifndef ONLINE_JUDGE    freopen("11205.txt","r",stdin);#endifint t;scanf("%d",&t);while(t--){scanf("%d%d",&p,&n);int i,j;for(i=0;i<n;i++)  for(j=0;j<p;j++)    scanf("%d",&B[i][j]);    /*for(i=0;i<n;i++)    {    for(j=0;j<p;j++)      printf("%d ",B[i][j]);      printf("\n");    }*/min=20;try_subset(0);printf("%d\n",min);}    return 0;}


原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 得了腰椎间盘突出怎么办 腰椎间盘突出的锻炼方法 腰椎间盘为什么会突出 腰椎间盘突出要注意哪些 腰椎间盘突出吃中药 腰椎间盘突出的腰带 腰椎间盘突出按摩器 腰椎间盘突出新疗法 腰椎间盘突出费用多少 腰椎间盘突出微创多少钱 腰椎间盘突出哪里医院好 腰椎间盘突出怎样按摩 腰椎间盘突出哪个医院好 腰椎间盘突出适合什么运动 腰椎间盘突出能自愈吗 腰椎间盘突出能复位吗 腰椎间盘突出手法复位 腰椎间盘突出能做瑜伽吗 霍华德腰椎间盘突出 腰椎间盘突出拍片能看出来吗 腰椎间盘突出去那家医院好 腰椎间盘突出能用按摩器吗 腰椎间盘突出专业医院 腰椎间盘突出应该看什么科 腰椎间盘突出要住院吗 腰椎间盘突出的微创疗法 腰椎间盘滑脱是怎么回事 腰椎间盘突出康复训练 腰椎间盘突出有什么好的办法 腰椎间盘突出 哪个医院 腰椎间盘突出中药方 腰椎间盘突出能游泳吗 腰椎间盘突出发病原因 腰椎间盘突出疼痛怎么缓解 腰椎间盘突出表现症状 怎样检查腰椎间盘突出 腰椎间盘突出并发症 腰椎间盘突出腿不麻 腰椎间盘突出用小针刀 腰椎间盘突出哪个医院较好 腰间盘膨隆