完美未来之星编程比赛 复赛第二场 发放激活码
来源:互联网 发布:core java中文版下载 编辑:程序博客网 时间:2024/04/30 09:03
题目描述
如从一组不重复的数字中获得随机几个数字组成验证码,其中只要是这些数字相加的和为相同的那么就认为是同一组验证码,最后希望获得一共有多少组有效验证码。
现在希望获得从一组N不同的数字中,获得和为C 的组个的个数。组合的个数有可能是1个 有可能是N个 。
输入格式
第一行输入1个整数M,表示总得数据组数。
第二行输入1个整数 2 < N < 100,表示需要输入的不同的数字的个数
第三行输入1个整数 C ,表示数字的和
第四行输入N个不同数字(数字>0)中间用逗号隔开, 0 < 单个数字 <= 100
测试格式
按照和为result 的验证码的总数量。
输入样例:
2
4
3
11 ,2, 3, 1
3
3
1,2,3
输出样例
2
如从一组不重复的数字中获得随机几个数字组成验证码,其中只要是这些数字相加的和为相同的那么就认为是同一组验证码,最后希望获得一共有多少组有效验证码。
现在希望获得从一组N不同的数字中,获得和为C 的组个的个数。组合的个数有可能是1个 有可能是N个 。
输入格式
第一行输入1个整数M,表示总得数据组数。
第二行输入1个整数 2 < N < 100,表示需要输入的不同的数字的个数
第三行输入1个整数 C ,表示数字的和
第四行输入N个不同数字(数字>0)中间用逗号隔开, 0 < 单个数字 <= 100
测试格式
按照和为result 的验证码的总数量。
输入样例:
2
4
3
11 ,2, 3, 1
3
3
1,2,3
输出样例
2
2
才用动态规划,可转换为01背包的思想,状态方程:dp[j]=dp[j]+dp[j-num[i]];其中num[i]表示第i个数值,dp[j]定义为:和为j的方案数。
#include <map>#include <string>#include <cstdio>#include <cstdlib>#include <cstring>#include <iostream>#include <memory.h>#include <algorithm>using namespace std;int num[110];int dp[110];int main(){int m;cin>>m;while(m--){int n;cin>>n;int c;cin>>c;for(int i=1;i<=n;i++){cin>>num[i];if(i!=n)cin.get();}sort(num+1,num+n+1);memset(dp,0,sizeof(dp));dp[0]=1;for(int i=1;i<=n;i++){for(int j=c;j>=num[i];j--){dp[j]=dp[j]+dp[j-num[i]];}}cout<<dp[c]<<endl;}}
- 完美未来之星编程比赛 复赛第二场 发放激活码
- 2013完美未来之星复赛第二场题目——发放激活码
- 完美未来之星编程比赛 复赛第一场 文字处理屏蔽字库
- 完美未来之星编程比赛 复赛第一场 图像融合
- 完美未来之星编程比赛 复赛第一场 时间计算
- 完美未来之星 复赛第二场 迷宫(DFS)
- 完美之星编程大赛 复赛第二场 24点
- 2013完美未来之星复赛第一场题目——文字处理屏蔽字库
- 百度之星2010复赛第二场第三题《蜗牛》
- 百度之星2010 复赛第二场 第二题 题目 解题报告
- 2013腾讯编程马拉松复赛第二场部分题解
- 发放激活码 (一问一答)
- 2006百度之星程序设计比赛复赛试题
- 多校赛第二场比赛总结
- HSU 4536 XCOM Enemy Unknown && 2013腾讯编程马拉松复赛第二场
- 编程之美-初赛第二场
- 编程之美初赛第二场 集合
- 2014编程之美初赛第二场
- 【Android 开发】:Android五种布局的使用方法
- HDOJ-1238 Substrings!
- VIM 常用命令
- MapReduce:详解Shuffle过程
- 宏基4740g笔记本xp系统sata驱动安装
- 完美未来之星编程比赛 复赛第二场 发放激活码
- php连接关闭数据库mysql
- Android布局详解之二:LinearLayout
- sdut2152 Balloons
- opencv在windows系统中配置总结
- 操作MySQL数据库
- java连接数据库代码
- JQUERY调用Webservice
- 关于无符号与有符号的相关运算