Codeforces Round #583
Contest Info
| Solved | A | B | C | D | E | F | G | H |
|---|---|---|---|---|---|---|---|---|
| 4/8 | O | O | O | Ø | - | - | - | - |
- O 在比赛中通过
- Ø 赛后通过
- ! 尝试了但是失败了
- - 没有尝试
Solutions
A. Optimal Currency Exchange
题意:
有\(n\)个卢布,\(d\)卢布可以换\(1\)美元,\(e\)卢布可以换\(1\)欧元。
美元只能按\(1, 2, 5, 10, 20, 50, 100\)这样的面额兑换。
欧元只能按\(5, 10, 20, 50, 100, 200\)这样的面额兑换。
问兑换之后剩下的卢布最少是多少?
思路:
首先兑换美元只考虑\(1\)美元为单位进行兑换即可。
欧元只考虑\(5\)欧元为单位进行兑换即可。
然后考虑兑换\(x\)个\(5\)欧元和\(y\)个\(1\)美元。
考虑到\(e \leq 30\),那么\(5e \leq 150\),那么\(x\)的最大范围不会超过\(10^6\),那么直接枚举\(x\)即可。
B. Badges
题意:
有\(b\)个男孩和\(g\)个女孩,现在有\(n + 1\)个盒子,第\(i\)个盒子里面有\(i \in [0, n]\)个红徽章以及\(n - i\)个蓝徽章。
有一个游戏,有\(n\)个人接受了邀请,问最少保留多少个盒子,使得不管这\(n\)个人中有\(x \leq b\)个男孩,有\(y \leq g\)个女孩,使得保留下来的箱子中至少存在一个箱子,使得\(i \geq x\)并且\(n - i \geq y\)。
思路:
考虑枚举\(x \in [0, b]\)和\(y \in [0, g]\),当且仅当\(x + y = n\)时这种情况的盒子才需要保留。
否则都可以规约到另一个盒子。
C. Bad Sequence
题意:
有一个括号序列,问能否最多移动一个括号的位置,使得它合法。
思路:
将最后一个左括号的位置移动最左边,再检查一下是否合法即可。
为什么?
一个合法的括号序列只要它满足任意一个前缀左括号的数量都大于等于右括号数量即可
D. Treasure Island
题意:
在一个\(n \cdot m\)和矩形中,有些地方不能走,一个人从\((1, 1)\)出发,只能向右和向下走,问最少在几个空地上摆障碍物,使得那个人到不了\((n, m)\)。
思路:
显然答案的取值为\(0, 1, 2\)。
如果不连通,答案为\(0\)。
否则,加边形成一个\(DAG\),然后跑支配树,看看\((1, 1)\)到\((n, m)\)上有没有支配点,有的话,答案为\(1\)。
其实好像也是个最小割问题?
Codeforces Round #583的更多相关文章
- Codeforces Round #583 (Div. 1 + Div. 2, based on Olympiad of Metropolises)
传送门 A. Optimal Currency Exchange 枚举一下就行了. Code #include <bits/stdc++.h> using namespace std; t ...
- Codeforces Round #583 (Div. 1 + Div. 2, based on Olympiad of Metropolises) C题
C. Bad Sequence Problem Description: Petya's friends made him a birthday present — a bracket sequenc ...
- Codeforces Round #583 (Div. 1 + Div. 2, based on Olympiad of Metropolises) A题
A. Optimal Currency ExchangeAndrew was very excited to participate in Olympiad of Metropolises. Days ...
- Petya and Construction Set(图的构造) Codeforces Round #583 (Div. 1 + Div. 2, based on Olympiad of Metropolises)
题意:https://codeforc.es/contest/1214/problem/E 有2n个点,每个2*i和2*i-1的距离必须是Di(<=n),现在让你构造这个树. 思路: 因为Di小 ...
- Treasure Island(两遍dfs)-- Codeforces Round #583 (Div. 1 + Div. 2, based on Olympiad of Metropolises)
题意:https://codeforc.es/contest/1214/problem/D 给你一个n*m的图,每次可以往右或者往下走,问你使(1,1)不能到(n,m)最少要放多少 ‘ # ’ . 思 ...
- Codeforces Round #366 (Div. 2) ABC
Codeforces Round #366 (Div. 2) A I hate that I love that I hate it水题 #I hate that I love that I hate ...
- Codeforces Round #354 (Div. 2) ABCD
Codeforces Round #354 (Div. 2) Problems # Name A Nicholas and Permutation standard input/out ...
- Codeforces Round #368 (Div. 2)
直达–>Codeforces Round #368 (Div. 2) A Brain’s Photos 给你一个NxM的矩阵,一个字母代表一种颜色,如果有”C”,”M”,”Y”三种中任意一种就输 ...
- cf之路,1,Codeforces Round #345 (Div. 2)
cf之路,1,Codeforces Round #345 (Div. 2) ps:昨天第一次参加cf比赛,比赛之前为了熟悉下cf比赛题目的难度.所以做了round#345连试试水的深浅..... ...
随机推荐
- 二十二、DMA驱动
一.DMA简介 DMA(Direct Memory Access,直接内存存取),DMA传输将数据从一个地址空间复制到另外一个地址空间.传输过程由DMA控制器独立完成,它并没有拖延CPU的工作,可以让 ...
- PB在已经存在的datawindow中添加数据列的方法
打开数据窗口,点击Data按钮 进入到数据源定义画板,选择要新增的列后,不要保存文件,直接点关闭,在提示框选是就可以了 新增的列值存不到数据库中,如果需要更新数据库中的值则:需要在数据窗口画板下,点击 ...
- [二叉树算法]关于判断是否为BST的算法
//判断是否为BST 搜索树==二叉排序树 1.递归知最大最小值.2.先中序判是否单调 bool IsValidBST(BTNode *p,int low,int high){ if(p==NULL) ...
- QT-入门:创建项目时遇到工程工具集(Kit)找不到问题
创建项目遇到了以下提示: Please add a kit in the options or via the maintenance tool of the SDK 解决方法: 在指定的工具链中设置 ...
- NIO--ByteBuf
Nio 的ByteBuffer 和 Netty 的 ByteBuf 的区别: 1.ByteBuf 将 ByteBuffer的position 分解为:readIndex , writeIndex 因 ...
- setTimeout()方法和setInterval()方法
setTimeout方法: 定义和用法: setTimeout() 方法用于在指定的毫秒数后调用函数或计算表达式. tip: 1000 毫秒= 1 秒. tip: 如果你只想重复执行可以使用setI ...
- iOS退出APP
强制退出有四种: exit(); abort(); assert(); 主动制造一个崩溃: exit() 1.附加了关闭打开文件与返回状态码给执行环境,并调用你用atexit注册的返回函数: 2.警告 ...
- hive分区理念介绍
一.背景 1.在Hive Select查询中一般会扫描整个表内容,会消耗很多时间做没必要的工作.有时候只需要扫描表中关心的一部分数据,因此建表时引入了partition概念. 2.分区表指的是在创建表 ...
- @Transactional 同一个类中无事务方法a()内部调用有事务方法b()的问题
https://blog.csdn.net/u010235716/article/details/90171802 1. 事务的4种特性 序号 参数 含义1 原子性(Atomicity) ...
- JS在浏览器中输出各种三角形
直角三角形 <script type="text/javascript"> for(var i=1;i<=8;i++){ for(var j=1;j<=i; ...