时间: 1000ms / 空间: 655360KiB / Java类名: Main

背景

冬令营入学测试题

描述

题目描述

小D是一名魔法师,它最喜欢干的事就是对批判记者了。

这次记者招待会上,记者对于小D的数学很好奇。于是小D找了个方法把记者批判了一番。

它对记者抛出了这么一个问题:我有n点能量,写下数字i(1<=i<=9)需要花费a{i}点能量,我用这n点能量最多能写出什么数来?(当然可以不用光n点能量,具体看样例)

记者们一脸懵逼,于是来求助于你。

输入格式

一行10个数,表示n,a1,a2,a3,…,a9。

输出格式

一个数表示答案。

备注

输入样例1

10 2 2 1 2 2 2 2 2 2

输出样例1

3333333333

输入样例2

10 4 11 11 11 11 11 11 11 10

输出样例2

11

数据范围

对于30%的数据n,ai<=10。

对于60%的数据n,ai<=100。

对于100% 的数据1<=n,ai<=1000000,n>=min{ai}。

数的大小首先看位数,其次看最高位,然后是次高位……

位数为总能量/花费能量最小的数

设花费能量最小的数为a,花费能量s,答案至少为s/a位s。如果有多个花费能量最小,取数最大的那个

然后用总能量%s,得出还剩下多少能量值。即还有多少能量可以在让答案位数不变的前提下,变得更大。

然后从9开始倒着枚举,如果剩下的能量足够更新一个,那就让最高位更新,其次是次高位,以此类推。

枚举结束条件:1、枚举到的数<=a   2、当前步骤剩下的能量不能更新任何一个数

#include<cstdio>
#include<iostream>
#include<algorithm>
using namespace std;
int n,minn=0x7fffffff,d;
int ans[];
struct node
{
int w;//写下p需要w点能量
int p;
}a[];
bool cmp(node x,node y)//从9——1排序
{
return x.p>y.p;
}
int main()
{
scanf("%d",&n);
for(int i=;i<=;i++)
{
scanf("%d",&a[i].w);
a[i].p=i;
if(a[i].w<=minn)//minn当前耗费最小的能量
{
minn=a[i].w;
d=a[i].p;//耗费能量minn写下的最大的数
}
}
int t=n%minn,tt=n/minn;//tt:ans的位数,t:写下tt位d后剩下的能量
sort(a+,a+,cmp);//从9——1排序
//sort(a+1,a+10,greater<int>());
int k=;//当前可更新的最高位
for(int i=;i<=tt;i++) ans[i]=d;//写下tt位d
while(t)
{
bool ok=false;//ok起的作用:当当前步骤剩下的能量不能更新任何一个数时,退出
for(int i=;i<=;i++)//将此处循环改成从9——1,把结构体改成数组a[i]=j代表写下i用j点能量,可以省去前面sort排序
if(a[i].p<=d) break;//a[i].p从大到小排序,如果当前的p小于d,后面的一定小于d,更新会使ans更小。如果p等于d。没有更新必要
else if(a[i].w-minn<=t)//能量可以将d更新成a[i].p
{
ans[k++]=a[i].p;//先更新,k再++
t=t-(a[i].w-minn);
ok=;
break;
}
if(ok) continue;
else break;
}
for(int i=;i<=tt;i++) cout<<ans[i];
}

清北学堂2017NOIP冬令营入学测试P4747 D’s problem(d)的更多相关文章

  1. 清北学堂2017NOIP冬令营入学测试P4745 B’s problem(b)

    清北学堂2017NOIP冬令营入学测试 P4745 B's problem(b) 时间: 1000ms / 空间: 655360KiB / Java类名: Main 背景 冬令营入学测试 描述 题目描 ...

  2. 清北学堂2017NOIP冬令营入学测试 P4744 A’s problem(a)

    清北学堂2017NOIP冬令营入学测试 P4744 A's problem(a) 时间: 1000ms / 空间: 655360KiB / Java类名: Main 背景 冬令营入学测试题,每三天结算 ...

  3. 清北学堂2017NOIP冬令营入学测试P4749 C’s problem(c)

    P4746 C's problem(c) 时间: 1000ms / 空间: 655360KiB / Java类名: Main 背景 冬令营入学测试 描述 题目描述 小C是一名数学家,由于它自制力比较差 ...

  4. 清北学堂2017NOIP冬令营入学测试P4749 F’s problem(f)

    时间: 1000ms / 空间: 655360KiB / Java类名: Main 背景 冬令营入学测试 描述 这个故事是关于小F的,它有一个怎么样的故事呢. 小F是一个田径爱好者,这天它们城市里正在 ...

  5. 清北学堂2017NOIP冬令营入学测试

    P4744 A's problem(a) 时间: 1000ms / 空间: 655360KiB / Java类名: Main 背景 冬令营入学测试题,每三天结算一次成绩.参与享优惠 描述 这是一道有背 ...

  6. AC日记——C’s problem(c) TYVJ P4746 (清北学堂2017冬令营入学测试第三题)

    P4746 C’s problem(c)   时间: 1000ms / 空间: 655360KiB / Java类名: Main 背景 冬令营入学测试 描述 题目描述 小C是一名数学家,由于它自制力比 ...

  7. Tyvj2017清北冬令营入学测试

    P4744 A's problem(a) 时间: 1000ms / 空间: 655360KiB / Java类名: Main 背景 冬令营入学测试题,每三天结算一次成绩.参与享优惠 描述 这是一道有背 ...

  8. 清北学堂入学测试P4751 H’s problem(h)

    P4751 H’s problem(h)  时间: 1000ms / 空间: 655360KiB / Java类名: Main 背景 冬令营入学测试 描述 小H是一个喜欢逛街的女孩子,但是由于上了大学 ...

  9. 济南清北学堂游记 Day 1.

    快住手!这根本不是暴力! 刷了一整天的题就是了..上午三道题的画风还算挺正常,估计是第一天,给点水题做做算了.. rqy大佬AK了上午的比赛! 当时我t2暴力写挂,还以为需要用啥奇怪的算法,后来发现, ...

随机推荐

  1. mysql GROUP BY 与 ORDER BY 查询不是最新记录

    转载:http://blog.csdn.net/qvbfndcwy/article/details/7200910 鉴于项目的需要,就从网上找到该文章,文章分析得很详细也很易懂,在android里,( ...

  2. sqlserver删除所有表(表结构和数据)

    要删除某个数据库,或者删除数据库中的所有表(删除表结构和数据),需要先删除表间的外键约束,才能删除表.如删除数据库db_wy中的所有表: --/第1步**********删除所有表的外键约束***** ...

  3. C#语句2——循环语句(for穷举、迭代和while循环)

    一.for循环拥有两类: (一).穷举: 把所有可能的情况都走一遍,使用if条件筛选出来满足条件的情况. 1.单位给发了一张150元购物卡,拿着到超市买三类洗化用品.洗发水15元,香皂2元,牙刷5元. ...

  4. 0011《SQL必知必会》笔记07 数据的插入、更新和删除

    1.插入完整的行或一部分:INSERT INTO 表名(列名1-n) VALUES (对应的值1-n) INSERT INTO products(prod_id, vend_id, prod_name ...

  5. SQL Server 分隔字符串函数实现

    在SQL Server中有时候也会遇到字符串进行分隔的需求.平时工作中常常遇到这样的需求,例如:人员数据表和人员爱好数据表,一条人员记录可以多多人员爱好记录,而往往人员和人员爱好在界面展示层要一并提交 ...

  6. MaskedTextBox的聚焦和光标位置

    遇到一个关于MaskedTextBox聚焦和光标居左的问题. ①. 先说说聚焦: 起初给MaskedTextBox设置了Focus(),运行之后,并没有作用. 然后又给Form添加了Load事件,又设 ...

  7. Android UI编程(1)——九宫格(GridView)

    (转自:http://blog.csdn.net/Thanksgining/article/details/42968847) 参考博客:http://blog.csdn.net/xyz_lmn/ar ...

  8. Android,LIstView中的OnItemClick点击无效的解决办法

    在List_Item布局文件中的根节点加上如下背景标黄的这一行 <?xml version="1.0" encoding="utf-8"?> < ...

  9. /usr/include/sys/types.h:62: error: conflicting types for ‘dev_t’

    /usr/include/sys/types.h:62: error: conflicting types for ‘dev_t’/usr/include/linux/types.h:13: erro ...

  10. .NET导入导出Excel

    若是开发后台系统,ASP.NET MVC中总是涉及了很多导入导出Excel的问题,有的时候处理起来比较烦 如果能使用以下代码解决,就完美了 public class ReportModel { [Ex ...