UVA 11205 - The broken pedometer 暴力 二进制表示状态
来源:互联网 发布:淘宝被买家诈骗怎么办 编辑:程序博客网 时间:2024/05/16 14:39
用最少的LED灯区分 给出来的数字 LED灯最多15个 而数字最多100个以最大来讨论 每个LED灯的状态有两种 开或关 所以自然而然的就用0 1 来表示LED灯的状态最多15个灯 2的15次方 最多100组需要判断的 暴力不会超时 需要注意的是 在每次循环判断完后 vis数组需要清零 但是不能全部清零
那样会超时 2的30次方必超时 因为每次改变的vis不超过100个 所以把这一百个记录下来 最后把这些清零就OK了
那样会超时 2的30次方必超时 因为每次改变的vis不超过100个 所以把这一百个记录下来 最后把这些清零就OK了
#include<cstdio>#include<cstring>#include<cmath>#include<algorithm>using namespace std;int main(){ #ifdef LOCAL freopen("in.txt","r",stdin); #endif // LOCAL int T,n[15]; scanf("%d",&T); n[0] = 1; for(int x = 1;x <= 15; x++) n[x] = n[x-1] * 2; while(T--) { int P,N,s; scanf("%d%d",&P,&N); int LED[105],vis[65540],a[105]; memset(LED,0,sizeof(LED)); memset(vis,0,sizeof(vis)); for(int i = 1; i <= N; i++) { for(int j = P-1; j >= 0; j--) { scanf("%d",&s); LED[i] += s * n[j]; } } int minn = 20; for(int i = 1; i <= pow(2,P); i++) { int cnt = 0,k = i,ok = 1,M = N; while(k) { cnt += k % 2; k /= 2; } if(cnt > minn)continue; for(int j = 1; j <= N; j++) { a[j] = LED[j] & i; if(vis[a[j]]){ok = 0;M = j;break;} vis[a[j]] = 1; } for(int t = 1; t <= M; t++) vis[a[t]] = 0; if(ok) minn = min(minn,cnt); } printf("%d\n",minn); } return 0;}
0 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
- 9.8 VS qt的ui变量的调用
- udt-问题解决
- 长方柱类
- ecshop后台管理员登陆显示商品列表价格不同
- 三角形类2
- UVA 11205 - The broken pedometer 暴力 二进制表示状态
- ClientDataSet
- NOR FLASH 和NAND FLASH 问题
- 关于html中table单元格的填充
- JavaScript trim函数大赏
- 用VISO 分割线条或图形
- android apk 应用 重新签名 方法
- 关于AB和16706的奇妙关系
- 关于如何利用移位运算和逻辑运算来加速算法的小技巧