博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
HDU 2103 Family Plan
阅读量:5296 次
发布时间:2019-06-14

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

题目

Problem Description

As far as we known,there are so many people in this world,expecially in china.But many people like LJ always insist on that more people more power.And he often says he will burn as much babies as he could.Unfortunatly,the president XiaoHu already found LJ's extreme mind,so he have to publish a policy to control the population from keep on growing.According the fact that there are much more men than women,and some parents are rich and well educated,so the president XiaoHu made a family planning policy:According to every parents conditions to establish a number M which means that parents can born M children at most.But once borned a boy them can't born other babies any more.If anyone break the policy will punished for 10000RMB for the first time ,and twice for the next time.For example,if LJ only allowed to born 3 babies at most,but his first baby is a boy ,but he keep on borning another 3 babies, so he will be punished for 70000RMB(10000+20000+40000) totaly.

Input

The first line of the input contains an integer T(1 <= T <= 100) which means the number of test cases.In every case first input two integers M(0<=M<=30) and N(0<=N<=30),N represent the number of babies a couple borned,then in the follow line are N binary numbers,0 represent girl,and 1 represent boy.

Output

For each test case you should output the total money a couple have to pay for their babies.

解题思路

感觉这道题非常非常的坑,明明程序都已经能正常跑出程序了,却一直不能AC……看了看网络上有和我一样一直WA的人,估计他也一头雾水。后来看论坛才知道要将int改为long long型才能通过,虽然是在不理解这样是为什么,先放出修改前的代码,以后想通了再进行修改。这里直接放出代码:

#include
#include
using namespace std;int main(){ int a[50]; int i,j,m,n; scanf("%d",&i); while(i--) { long long num=0,rmb=0; int t=1; scanf("%d %d",&m,&n); for(j=0;j
m-1)) /*超出预定数目,或者生了男孩*/ { rmb=rmb+1000*t; t=t*2; } if(a[j]==1) num=1; } printf("%I64d RMB\n",rmb); } return 0;}

更新:

在做ACM题时,经常都会遇到一些比较大的整数。而常用的内置整数类型常常显得太小了:其中long 和 int 范围是[-2^31,2^31),即-2147483648~2147483647。而unsigned范围是[0,2^32),即0~4294967295。也就是说,常规的32位整数只能够处理40亿以下的数。
那遇到比40亿要大的数怎么办呢?这时就要用到C++的64位扩展了。不同的编译器对64位整数的扩展有所不同。

转载于:https://www.cnblogs.com/yunlambert/p/7611803.html

你可能感兴趣的文章
使用gitbash来链接mysql
查看>>
SecureCRT的使用方法和技巧(详细使用教程)
查看>>
右侧导航栏(动态添加数据到list)
查看>>
81、iOS本地推送与远程推送详解
查看>>
虚拟DOM
查看>>
uva 11468 Substring
查看>>
自建数据源(RSO2)、及数据源增强
查看>>
BootStrap2学习日记2--将固定布局换成响应式布局
查看>>
关于View控件中的Context选择
查看>>
2018icpc徐州OnlineA Hard to prepare
查看>>
Spark的启动进程详解
查看>>
使用命令创建数据库和表
查看>>
数据库的高级查询
查看>>
机器视觉:SSD Single Shot MultiBox Detector
查看>>
五子棋项目的实现(二)博弈树算法的描述
查看>>
201521123044 《Java程序设计》第1周学习总结
查看>>
MIT Scheme 的基本使用
查看>>
程序员的“机械同感”
查看>>
在16aspx.com上下了一个简单商品房销售系统源码,怎么修改它的默认登录名和密码...
查看>>
c++回调函数
查看>>