C - Otoshidama

传送门:https://abc085.contest.atcoder.jp/tasks/abc085_c

有面值为10000、5000、1000(YEN)的纸币。试用N张纸币,组成金额为Y(YEN)的钱。

依次考虑:

1.只用1KYEN的纸币;

2.用1KYEN和5KYEN的纸币;

3.用1KYEN、5KYEN和10KYEN的纸币。

参考程序如下:

#include <stdio.h>

int min(int a, int b)
{
return a < b? a: b;
} int main(void)
{
int n, y;
scanf("%d%d", &n, &y);
//1k-yen only.
int yen_1k = y / ;
int yen_5k = ;
int yen_10k = ;
int cnt = yen_1k + yen_5k + yen_10k;
if (cnt == n) printf("%d %d %d\n", yen_10k, yen_5k, yen_1k);
else if (cnt < n) printf("-1 -1 -1\n");
//1k-yen and 5k-yen.
else {
int dif = cnt - n;
int y1k_2_y5k = min(dif / , yen_1k / );
yen_5k += y1k_2_y5k;
yen_1k -= y1k_2_y5k * ;
cnt = yen_1k + yen_5k + yen_10k;
if (cnt == n) printf("%d %d %d\n", yen_10k, yen_5k, yen_1k);
//1k-yen, 5k-yen and 10k-yen.
else {
dif = cnt - n;
int y5k_2_y10k = min(dif, yen_5k / );
yen_10k += y5k_2_y10k;
yen_5k -= y5k_2_y10k * ;
cnt = yen_1k + yen_5k + yen_10k;
if (cnt == n) printf("%d %d %d\n", yen_10k, yen_5k, yen_1k);
else printf("-1 -1 -1\n");
}
}
return ;
}

当然,这个问题也可以构造一个三元一次方程,brute force求解。

D - Katana Thrower

传送门:https://abc085.contest.atcoder.jp/tasks/abc085_d

N把武士刀,对于每一把武士刀,有以下两种攻击方法:

①常规:攻击造成a点damage,可连续多次使用;

②终结:攻击造成b点damage,使用一次后丢弃。

对于每一把武士刀,有a≤b

为造成至少H点的damage,求最小攻击次数。

设置一个优先队列(用std::priority_queue实现),对于每一把武士刀,将有序对<a,1><b,0>置入优先队列。于是,每次取出顶端的元素,作为武器使用。

参考程序如下:

#include <bits/stdc++.h>
using namespace std; priority_queue<pair<int, bool> > q; int main(void)
{
int n, h;
scanf("%d%d", &n, &h);
for (int i = ; i < n; i++) {
int a, b;
scanf("%d%d", &a, &b);
q.push(make_pair(a, ));
q.push(make_pair(b, ));
}
int ans = ;
while (h > ) {
int attack = q.top().first;
bool multi_attack = q.top().second;
q.pop();
if (multi_attack) {
int cnt = h / attack;
if (h % attack) cnt++;
h -= attack * cnt;
ans += cnt;
}
else {
h -= attack;
ans++;
}
}
printf("%d\n", ans);
return ;
}

AtCoder ABC 085C/D的更多相关文章

  1. ATCODER ABC 099

    ATCODER ABC 099 记录一下自己第一场AK的比赛吧...虽然还是被各种踩... 只能说ABC确实是比较容易. A 题目大意 给你一个数(1~1999),让你判断它是不是大于999. Sol ...

  2. Atcoder ABC 141

    Atcoder ABC 141 A - Weather Prediction SB题啊,不讲. #include<iostream> #include<cstdio> #inc ...

  3. Atcoder ABC 139E

    Atcoder ABC 139E 题意: n支球队大循环赛,每支队伍一天只能打一场,求最少几天能打完. 解法: 考虑抽象图论模型,既然一天只能打一场,那么就把每一支球队和它需要交手的球队连边. 求出拓 ...

  4. Atcoder ABC 139D

    Atcoder ABC 139D 解法: 等差数列求和公式,记得开 $ long long $ CODE: #include<iostream> #include<cstdio> ...

  5. Atcoder ABC 139C

    Atcoder ABC 139C 题意: 有 $ n $ 个正方形,选择一个起始位置,使得从这个位置向右的小于等于这个正方形的高度的数量最多. 解法: 简单递推. CODE: #include< ...

  6. Atcoder ABC 139B

    Atcoder ABC 139B 题意: 一开始有1个插口,你的插排有 $ a $ 个插口,你需要 $ b $ 个插口,问你最少需要多少个插排. 解法: 暴力模拟. CODE: #include< ...

  7. Atcoder ABC 139A

    Atcoder ABC 139A 题意: 给你两个字符串,记录对应位置字符相同的个数 $ (n=3) $ 解法: 暴力枚举. CODE: #include<iostream> #inclu ...

  8. atcoder abc 244

    atcoder abc 244 D - swap hats 给定两个 R,G,B 的排列 进行刚好 \(10^{18}\) 次操作,每一次选择两个交换 问最后能否相同 刚好 \(10^{18}\) 次 ...

  9. AtCoder ABC 250 总结

    AtCoder ABC 250 总结 总体 连续若干次一样的结果:30min 切前 4 题,剩下卡在 T5 这几次卡在 T5 都是一次比一次接近, 什么 dp 前缀和打挂,精度被卡,能水过的题连水法都 ...

随机推荐

  1. Robot Framework 搭建和RIDE(GUI) 的环境

    在windows x64的环境上进行安装,集成Selenium2和AutoIt的libraries,以下安装步骤在win 7,win 8.1,win 10, win 2012 R2上测试通过 1. 下 ...

  2. 选择排序(1)——简单选择排序(selection sort)

    选择排序是一种很常见的排序算法,它需要对数组 中的元素进行多次遍历.每经过一次循环,选择最小的元素并把它放在靠近数组前端的位置. 代码实现: public static void selectionS ...

  3. Codeforces--14D--Two Paths(树的直径)

     Two Paths Time Limit: 2000MS   Memory Limit: 65536KB   64bit IO Format: %I64d & %I64u Submit ...

  4. JSP页面的跳转及传值

    1.response.sendRedirect("跳转到页面的URL"); 该方法通过修改HTTP协议的HEADER部分,对浏览器下达重定向指令的,使浏览器显示重定向网页的内容. ...

  5. 浅谈JVM内存模型

    JAVA虚拟机在执行JAVA程序的时候,会把它管理的内存分成若干不同的数据区域,每个区域都有各自的用途.目前大致把JVM内存模型划分为五个区域:程序计数器,虚拟机栈,本地方法栈,堆和方法区. 程序计数 ...

  6. HDU3487 Play with Chain splay 区间反转

    HDU3487 splay最核心的功能是将平衡树中的节点旋转到他的某个祖先的位置,并且维持平衡树的性质不变. 两个操作(数组实现) cut l,r, c把[l,r]剪下来放到剩下序列中第c个后面的位置 ...

  7. JSP-Runoob:JSP 指令

    ylbtech-JSP-Runoob:JSP 指令 1.返回顶部 1. JSP 指令 JSP指令用来设置整个JSP页面相关的属性,如网页的编码方式和脚本语言. 语法格式如下: <%@ direc ...

  8. Redis学习和应用记录(1)--介绍和安装

    Redis是一个开源的分布式缓存框架,它也常被理解为数据结构服务器,因为它包含丰富的数据类型,如strings, hashes, lists, sets, sorted sets, bitmaps a ...

  9. C 语言程序员必读的 5 本书

    你正通过看书来学习C语言吗?书籍是知识的丰富来源.你可以从书中学到各种知识.书籍可以毫无歧视地向读者传达作者的本意.C语言是由 Dennis Ritchie在1969年到1973年在贝尔实验室研发的. ...

  10. Vue电商SKU组合算法问题

    前段时间,公司要做“添加商品”业务模块,这也算是电商业务里面的一个难点了. 令我印象最深的不是什么“组合商品”.“关联商品”.“关联单品”,而是商品SKU的组合问题. 这个问题特别有意思,当时虽然大体 ...