AtCoder ABC 085C/D
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的更多相关文章
- ATCODER ABC 099
ATCODER ABC 099 记录一下自己第一场AK的比赛吧...虽然还是被各种踩... 只能说ABC确实是比较容易. A 题目大意 给你一个数(1~1999),让你判断它是不是大于999. Sol ...
- Atcoder ABC 141
Atcoder ABC 141 A - Weather Prediction SB题啊,不讲. #include<iostream> #include<cstdio> #inc ...
- Atcoder ABC 139E
Atcoder ABC 139E 题意: n支球队大循环赛,每支队伍一天只能打一场,求最少几天能打完. 解法: 考虑抽象图论模型,既然一天只能打一场,那么就把每一支球队和它需要交手的球队连边. 求出拓 ...
- Atcoder ABC 139D
Atcoder ABC 139D 解法: 等差数列求和公式,记得开 $ long long $ CODE: #include<iostream> #include<cstdio> ...
- Atcoder ABC 139C
Atcoder ABC 139C 题意: 有 $ n $ 个正方形,选择一个起始位置,使得从这个位置向右的小于等于这个正方形的高度的数量最多. 解法: 简单递推. CODE: #include< ...
- Atcoder ABC 139B
Atcoder ABC 139B 题意: 一开始有1个插口,你的插排有 $ a $ 个插口,你需要 $ b $ 个插口,问你最少需要多少个插排. 解法: 暴力模拟. CODE: #include< ...
- Atcoder ABC 139A
Atcoder ABC 139A 题意: 给你两个字符串,记录对应位置字符相同的个数 $ (n=3) $ 解法: 暴力枚举. CODE: #include<iostream> #inclu ...
- atcoder abc 244
atcoder abc 244 D - swap hats 给定两个 R,G,B 的排列 进行刚好 \(10^{18}\) 次操作,每一次选择两个交换 问最后能否相同 刚好 \(10^{18}\) 次 ...
- AtCoder ABC 250 总结
AtCoder ABC 250 总结 总体 连续若干次一样的结果:30min 切前 4 题,剩下卡在 T5 这几次卡在 T5 都是一次比一次接近, 什么 dp 前缀和打挂,精度被卡,能水过的题连水法都 ...
随机推荐
- research plan1111
Hello prof.Choi 感谢您的来电,与您的这次通话我已经期盼了很久.我来做个自我介绍,我叫陈飞,今年27岁了,是河北地质大学计算机科学专业的本科毕业生.我非常想提高自己的学历,现在经过刘老师 ...
- bzoj3894: 文理分科(还是那道最小割)
3894: 文理分科 题目:传送门 感谢波老师没有来D飞我,让我做出了这题... 题解: 这题其实和我做的上一题(bzoj2132)很像,所以就不写题意了. 依然是那最小割... 这题给出了四个利益矩 ...
- MarkMonitor 目前最安全的域名注册商,因此,世界500强网站中的22%域名托管于markmonitor公司
也许你查询某个大型公司域名whios信息时,常常会发现很多这些大型公司的域名都在一家名为MarkMonitor的公司注册,那么markmonitor是家什么样的公司呢? MarkMonitor是一家从 ...
- bzoj2841
边双联通分量 具体详解蓝书上十分详细,因为必须是奇数个人坐在一起,那么一个人如果能选上,就必须处在一个简单奇圈中.而奇圈也是一个边双联通分量,所以我们先把边双联通分量都挖出来,然后进行二分图染色. 奇 ...
- hibernate中id中的 precision 和 scale 作用
转自:https://www.cnblogs.com/IT-Monkey/p/4077570.html <hibernate-mapping> <class name=&qu ...
- 使用display:flex;实现两栏布局和三栏布局
一.使用display:flex;实现两栏布局 body,div{margin:0px;padding:0px;} .flex-container{display:flex;height:300px; ...
- 解决 EF where<T>(func) 查询的一个性能问题
前两年帮朋友 做了个网吧管理软件,采用动软的三层架构 sql语句生成的.最近因功能变更 要改动,而我这段正在做asp.net mvc +ef+autofac的一个电商网站.索性 就把原来的底层全重新了 ...
- django - request.POST和request.body获取值时出现的情况
django request.POST / request.body 当request.POST没有值 需要考虑下面两个要求 1.如果请求头中的: Content-Type: application/ ...
- idea git项目修改后无法提交 颜色都是灰色
现象: idea git项目修改后无法提交 修改后的文件提交时不显示 颜色都是灰色 分析问题出现的原因: git未识别idea下项目. 排查: 发现是因为这个项目之前是基于svn的,然后直接导入 ...
- [转]linux之ps命令
转自:http://www.cnblogs.com/peida/archive/2012/12/19/2824418.html Linux中的ps命令是Process Status的缩写.ps命令用来 ...