博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
LA 4794 Sharing Chocolate (搜索)
阅读量:7094 次
发布时间:2019-06-28

本文共 1463 字,大约阅读时间需要 4 分钟。

  搞了一个晚上。。一道搜索可行解的题,开始的时候理解错了,以为可以dp直接搞掂。不过仔细想了一下,发现就算是理解错题意,dp起来也是很麻烦的。。。- -

  最后瞄了一下题解,调了一晚,搞掂括号放错位置的问题以后就过了。。囧。

AC code:

View Code
1 #define REP(i, n) for (int i = 0; i < (n); i++) 2  3 int sum[N], sz[20]; 4 bool vis[N][M]; 5  6 void input(int n) { 7     REP(i, n) cin >> sz[i]; 8     REP(i, 1 << n) { 9         sum[i] = 0;10         REP(j, n) if (i & (1 << j)) sum[i] += sz[j];11         REP(j, M) vis[i][j] = false;12     }13 }14 15 inline int bitCount(int x) {16     int cnt = 0;17     while (x) cnt += x & 1, x >>= 1;18     return cnt;19 }20 21 bool dfs(int st, int x) {22     if (bitCount(st) == 1 && sum[st] % x == 0) {23         return true;24     }25     if (vis[st][x]) return false;26     int y = sum[st] / x;27     for (int t = (st - 1) & st; t; t = (t - 1) & st) {28         int nt = st ^ t;29         if (!(sum[t] % x) && dfs(t, min(x, sum[t] / x)) && dfs(nt, min(x, sum[nt] / x))) return true;30         if (!(sum[t] % y) && dfs(t, min(y, sum[t] / y)) && dfs(nt, min(y, sum[nt] / y))) return true;31     }32     vis[st][x] = true;33     return false;34 }35 36 int main() {37     int x, y, n, cas = 1;38     while (cin >> n && n) {39         cin >> x >> y;40         input(n);41         printf("Case %d: ", cas++);42         if (sum[(1 << n) - 1] == x * y && dfs((1 << n) - 1, min(x, y))) puts("Yes");43         else puts("No");44     }45     return 0;46 }

 

——written by Lyon

 

 

转载于:https://www.cnblogs.com/LyonLys/archive/2013/02/20/LA_4794_Lyon.html

你可能感兴趣的文章
video_capture模块分析
查看>>
Bmob移动后端云服务平台--Android从零開始--(二)android高速入门
查看>>
免费的UI素材准备
查看>>
Ubuntu设置显示桌面快捷键
查看>>
TabBarController和其他view无法建立Relationship segue的原因
查看>>
C语言中结构体变量之间赋值
查看>>
javascript精度问题与调整
查看>>
《从零開始学Swift》学习笔记(Day 63)——Cocoa Touch设计模式及应用之单例模式...
查看>>
hdu 3342 Legal or Not (拓扑排序)
查看>>
Dubbo限制大数据传输的解决方案
查看>>
ML学习分享系列(2)_计算广告小窥[中]
查看>>
form怎样正确post文件
查看>>
JVM概述
查看>>
artTemplate子模板include
查看>>
C#模拟POST提交表单(一)--WebClient
查看>>
[Spark][python]从 web log 中提取出 UserID 作为key 值,形成新的 RDD
查看>>
数据结构与算法(周鹏-未出版)-第六章 树-6.5 Huffman 树
查看>>
Zephyr的Shell
查看>>
fpga技能树
查看>>
国内的Android SDK镜像
查看>>