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;}
- UVa 11205 The broken pedometer
- uva 11205 - The broken pedometer
- uva 11205 - The broken pedometer
- UVa 11205 - The broken pedometer
- uva 11205 - The broken pedometer
- UVa 11205 - The broken pedometer
- UVA 11205 The broken pedometer
- uva 11205 The Broken Pedometer
- uva 11205 The broken pedometer
- uva 11205 - The broken pedometer
- UVa 11205 - The broken pedometer
- UVA 11205 The broken pedometer
- UVa 11205 - The broken pedometer
- UVA 11205 - The broken pedometer
- UVa-11205-The broken pedometer
- UVA - 11205 The broken pedometer
- UVA - 11205 The broken pedometer
- uva 11205 The broken pedometer
- Quartz 2D编程指南(1) - 概览
- html5标签参考手册
- Quartz 2D编程指南(2) - 图形上下文(Graphics Contexts)
- drawRect方法实现进度条progress
- 得到linux平台上ssh或ftp用户
- uva 11205 - The broken pedometer
- 学习maven的使用,看到一篇很实用的入门教程(菜鸟级入门)
- 10个重要的算法C语言实现源代码
- windows和unix下定时关机
- JS Float 运算BUG
- Linux下PCI设备驱动程序开发
- Padding和Margin
- springmvc简单示例
- find()