1117: Problem G 宝石合成

时间限制: 1 Sec  内存限制: 128 MB

提交: 18  解决: 4

[提交][状态][讨论版]

题目描写叙述

故事人物:豆豆强   走上致富之路的豆豆强越来越有土豪范,买房买车已经提不起他的兴趣,如今玩起了魔法宝石。

  这样的宝石分为不同品质等级,而且3个品质等级为 i 的宝石。能够合成一个品质等级为 i+1 的宝石。

更加奇妙的是,无论这个宝石的品质怎么变,一个宝石永远仅仅占一个单位的空间。   如今豆豆强须要买一个全金打造的保险柜来储存这些宝石。本来对于他这样的土豪来说,这个一点问题都没有。

但是全金的保险柜太重,所以他希望把宝石的体积缩减到最小。在这之前,豆豆强想请你帮他计算一下。这些宝石至少须要多少单位的空间来存储。

输入

第一行有一个正整数T,表示豆豆强要买T次宝石。   接下来 T 次购买,每次购买首先是一个n,表示豆豆强这次要买的宝石种类数。接下n行,每行有两个数a,b, 分别表示宝石的品质和已经买的数量。

     限制条件:   1 <= n <= 10000   1 <= a <= 10000   1 <= b <= 10000

输出

对于每次购买,请首先输出一行Case #t:,当中,t表示这是第几次购买。   紧接着一行输出这次购买的宝石至少要占的空间。

例子输入

3
1
111 9
2
111 6
112 1
3
111 3
112 2
113 2

例子输出

Case #1:
1
Case #2:
1
Case #3:
1

内蒙古省赛题。開始做这道题的时候,范围取的小了,导致一直wa。题目给的是10000。開始就等于10000导致一直wa。后来把范围改大就a了,在比赛的时候还是要注意范围问题,这些细节的地方还是要处理好。

这题的基本思路也比較简单。直接进行合并,暴力就能够过了;
#include <cstdio>
#include <cstring>
using namespace std;
const int maxn=10500;
int q[maxn];
int main()
{
int t,n,a,b,i,pos,count,k=1;
scanf("%d",&t);
while(t--)
{
count=0;
memset(q,0,sizeof(q));
scanf("%d",&n);
for(i=0;i<n;i++)
{
scanf("%d%d",&a,&b);
q[a]+=b;//先前这里忘记+号了。wa了
}
for(i=1;i<=maxn;i++)
{
q[i+1]=q[i+1]+q[i]/3;//这样的合并的方式还算是比較巧妙
q[i]=q[i]%3;
pos=i+1;
while(q[pos]>=3)
{
q[pos+1]=q[pos+1]+q[pos]/3;
q[pos]=q[pos]%3;
pos++;
}
if(q[i]!=0)
count+=q[i];
}
printf("Case #%d:\n%d\n",k++,count);
}
return 0;
}


Problem G 宝石合成 (内蒙古14年省赛)的更多相关文章

  1. 【贪心+中位数】【新生赛3 1007题】 Problem G (K)

    Problem G Time Limit : 4000/2000ms (Java/Other)   Memory Limit : 32768/32768K (Java/Other) Total Sub ...

  2. Problem G: If We Were a Child Again

    Problem G: If We Were a Child AgainTime Limit: 1 Sec Memory Limit: 128 MBSubmit: 18 Solved: 14[Submi ...

  3. Western Subregional of NEERC, Minsk, Wednesday, November 4, 2015 Problem G. k-palindrome dp

    Problem G. k-palindrome 题目连接: http://opentrains.snarknews.info/~ejudge/team.cgi?SID=c75360ed7f2c7022 ...

  4. 实验9:Problem G: 克隆人来了!

    想要输出""的话: cout<<"A person whose name is \""<<name<<" ...

  5. 实验12:Problem G: 强悍的矩阵运算来了

    这个题目主要是乘法运算符的重载,卡了我好久,矩阵的乘法用3个嵌套的for循环进行,要分清楚矩阵的乘法结果是第一个矩阵的行,第二个矩阵的列所组成的矩阵. 重载+,*运算符时,可以在参数列表中传两个矩阵引 ...

  6. 烟大 Contest1024 - 《挑战编程》第一章:入门 Problem G: Check The Check(模拟国际象棋)

    Problem G: Check The Check Time Limit: 1 Sec  Memory Limit: 64 MBSubmit: 10  Solved: 3[Submit][Statu ...

  7. The Ninth Hunan Collegiate Programming Contest (2013) Problem G

    Problem G Good Teacher I want to be a good teacher, so at least I need to remember all the student n ...

  8. Problem G: Keywords Search

    Problem G: Keywords SearchTime Limit: 1 Sec Memory Limit: 128 MBSubmit: 10 Solved: 6[Submit][Status] ...

  9. BZOJ4977 八月月赛 Problem G 跳伞求生 set 贪心

    欢迎访问~原文出处——博客园-zhouzhendong 去博客园看该题解 题目传送门 - BZOJ4977 - 八月月赛 Problem G 题意 小明组建了一支由n名玩家组成的战队,编号依次为1到n ...

随机推荐

  1. BZOJ 4057 状压DP

    思路: 状压一下 就完了... f[i]表示选了的集合为i 转移的时候判一判就好了.. //By SiriusRen #include <cstdio> #include <cstr ...

  2. css下拉菜单写法

    网页导航栏的下拉效果,通过div框的显示和隐藏实现. <html> <head> <meta charset="UTF-8"> <titl ...

  3. button提交表单 a标签提交表单

    <form name="searchForm" id="searchForm" method="get" action="/ ...

  4. 【转载】Jmeter分布式部署测试-----远程连接多台电脑做压力性能测试

    在使用Jmeter进行接口的性能测试时,由于Jmeter 是JAVA应用,对于CPU和内存的消耗比较大,所以,当需要模拟数以万计的并发用户时,使用单台机器模拟所有的并发用户就有些力不从心,甚至会引起J ...

  5. 复习MySQL⑤查询、常用函数

    查询操作符列表 distinct操作符:用来消除重复记录. - 例: 查询fruits表中所有不重复的s_id select distinct s_id from fruits; 子查询:写在()中, ...

  6. 一个休假申请页对input标签各种属性的用法案例(手机端)

    <%@ page language="java" import="java.util.*" contentType="text/html; ch ...

  7. esp32(M5STACK)程序烧写(Ubuntu)

    由于我们的开发环境在Ubuntu上,所以介绍一下如何在Ubuntu上烧写esp32的程序 首先下载esptools   pip install esptool           擦除 sudo es ...

  8. HLPP算法 一种高效的网络最大流算法

    #include <algorithm> #include <cstdio> #include <cctype> #include <queue> #d ...

  9. 自动装箱拆箱(Autoboxing,Unboxing)

    自动装箱和拆箱 https://docs.oracle.com/javase/tutorial/java/data/autoboxing.html 1.5才有(Autoboxing,Unboxing) ...

  10. Hexo系列(二) 配置文件详解

    Hexo 是一款优秀的博客框架,在使用 Hexo 搭建一个属于自己的博客网站后,我们还需要对其进行配置,使得 Hexo 更能满足自己的需求 这里所说的配置文件,是位于站点根目录下的 _config.y ...