The Balance HDU - 1709 母函数(板子变化)
题意:
现在你被要求用天平和一些砝码来量一剂药。当然,这并不总是可以做到的。所以你应该找出那些不能从范围[1,S]中测量出来的品质。S是所有重量的总质量。
输入一个n,后面有n个数,表示这n个物品的质量
题解:
注意这个题的题干,这个天平只要能制造出来那个质量差,然后这个质量差就不会输出(看懂第二个样例就行)
这道题是母函数的变化版,没学过母函数的可以看一下:母函数 <普通母函数(HDU - 1028 ) && 指数型母函数(hdu1521)>
代码:
1 #include<iostream>
2 #include<queue>
3 #include<vector>
4 #include<string.h>
5 #include<stdio.h>
6 #include<queue>
7 #include<algorithm>
8 using namespace std;
9 typedef long long ll;
10 const int maxn=105;
11 int c1[maxn*maxn],c2[maxn*maxn],v[maxn];
12 int main()
13 {
14 int n;
15 queue<int>r;
16 while(~scanf("%d",&n))
17 {
18 int sum=0;
19 memset(c1,0,sizeof(c1));
20 memset(c2,0,sizeof(c2));
21 for(int i=1;i<=n;++i)
22 {
23 scanf("%d",&v[i]);
24 sum+=v[i];
25 }
26 c1[0]=1;
27 for(int i=1;i<=n;++i)
28 {
29 for(int j=0;j<=sum;++j)
30 {
31 for(int k=0;k+j<=sum && k<=v[i];k+=v[i])
32 {
33 if(j>k) c2[j-k]+=c1[j];
34 else c2[k-j]+=c1[j];
35 c2[k+j]+=c1[j];
36 }
37 }
38 for(int j=0;j<=sum;++j)
39 c1[j]=c2[j];//,c2[j]=0;
40 }
41 for(int i=1;i<=sum;++i)
42 {
43 if(!c1[i])
44 r.push(i);
45 }
46 printf("%d\n",r.size());
47 int flag=0;
48 while(!r.empty())
49 {
50 if(!flag)
51 printf("%d",r.front()),flag=1;
52 else printf(" %d",r.front());
53 r.pop();
54 }
55 if(flag)
56 printf("\n");
57 }
58 return 0;
59 }
The Balance HDU - 1709 母函数(板子变化)的更多相关文章
- HDU 1709 母函数天平问题 可出现减法的情况 The Balance
The Balance Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total ...
- *HDU 1709 母函数
The Balance Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total ...
- hdu 1028 母函数 一个数有几种相加方式
///hdu 1028 母函数 一个数有几种相加方式 #include<stdio.h> #include<string.h> #include<iostream> ...
- 组合数学 - 母函数的运用 --- hdu 1709 :The Balance
The Balance Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total ...
- hdu 1709 The Balance(母函数)
题意: 有一个天平.有N个砝码.重量分别是A1...AN. 问重量[1..S]中有多少种重量是无法利用这个天平和这些砝码称出来的. S是N个砝码的重量总和. 思路: 对于每一个砝码来说,有三种:不放, ...
- hdu 1709 The Balance
母函数的特殊情况,左右两边都可以放,如样例1,2,9 母函数为(1+x+1/x)*(1+x^2+1/x^2)*(1+x^9+1/x^9) 化简为(1+x+x^2)*(1+x^2+x^4)*(1+x^9 ...
- HDU 1709 The Balance( DP )
The Balance Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total ...
- HDU 2082 母函数模板题
找单词 Time Limit: 1000MS Memory Limit: 32768KB 64bit IO Format: %I64d & %I64u Submit Status De ...
- Crisis of HDU(母函数)
Crisis of HDU Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Tot ...
随机推荐
- wpf 在不同DPI下如何在DrawingVisual中画出清晰的图形
环境Win10 VS2017 .Net Framework4.7.1 本文仅讨论在DrawingVisual中进行的画图. WPF单位,系统DPI,显示器DPI三者的定义及关系 WPF单位:一 ...
- 大文件上传FTP
需求 将本地大文件通过浏览器上传到FTP服务器. 原有方法 将本地文件整个上传到浏览器,然后发送到node服务器,最后由node发送到FTP服务器. 存在问题 浏览器缓存有限且上传速率受网速影响,当文 ...
- LeetCode783. 二叉搜索树节点最小距离
题目 和LeetCode530没什么区别 1 class Solution { 2 public: 3 vector<int>ans; 4 int minDiffInBST(TreeNod ...
- 树莓派3B装ubuntu server后开启wifi
树莓派官网选择ubuntu server下载映像 step 1: 使用SDFormatter格式化SD卡: step2: 使用win32diskimager工具将映像写入准备好的SD卡: step3: ...
- ios获取缓存文件的大小并清除缓存
移动应用在处理网络资源时,一般都会做离线缓存处理,其中以图片缓存最为典型,其中很流行的离线缓存框架为SDWebImage. 但是,离线缓存会占用手机存储空间,所以缓存清理功能基本成为资讯.购物.阅读类 ...
- python中IF语句容易犯的错误CASE
python中没有switch case类似的语句,但是下面的IF语句却与之类似,却又不同: A = B = C = D = E = 1 if A == 1: B=2 elif B ==2: C= ...
- ichartjs测试dome分享
效果如下: 代码如下: <!DOCTYPE html> <html> <head> <meta charset="UTF-8" /> ...
- Py迭代和迭代器,生成器,生产者和消费者模型
迭代器iter 1.迭代的含义: 每次生成的结果依赖于上一次.问路,先问第一个人,第一个人不知道他就说第二个人知道,然后去找第二个人.第二个人不知道就说第三个人知道,然后去找第三个人 2.递归的含义: ...
- Py变量,递归,作用域,匿名函数
局部变量与全局变量 全局变量:全局生效的变量,在顶头的,无缩进的定义的变量. 局部变量:函数内生效的变量,在函数内定义的变量. name='1fh' def changename(): name='s ...
- 京东热 key 探测框架新版发布,单机 QPS 可达 35 万
https://mp.weixin.qq.com/s/3URAvUF6zwxeF5Kkc1aWHA 京东热 key 探测框架新版发布,单机 QPS 可达 35 万 原创 Hollis Hollis 2 ...