Codeforces Round #350 (Div. 2) A B C D1 D2 水题【D2 【二分+枚举】好题】
A. Holidays
题意:一个星球 五天工作,两天休息。给你一个1e6的数字n,问你最少和最多休息几天。
思路:我居然写成模拟题QAQ。
#include<bits/stdc++.h>
using namespace std; //#define int long long signed main(){
int n;
cin>>n;
if(n%==){
int x=n/;x*=;
cout<<x<<" "<<x;
return ;
}
int ans1=;
int ans2=;
int i=;
int temp=n;
while(){
if(temp<=)
break;
if(i%)
temp-=;
else{
ans1+=min(temp,);temp-=min(temp,);
}
i++;
if(temp<=)
break;
}
i=;
temp=n;
while(){
if(temp<=)
break;
if(i%==)
temp-=;
else
ans2+=min(temp,),temp-=min(temp,);
i++;
if(temp<=)
break;
}
cout<<ans1<<" "<<ans2;
return ;
}
/*
6
1 2
7
2 2
8
2 3
9
2 4 */
B. Game of Robots
题意:第一个机器人报自己的编号;第二个报前一个机器人和自己的编号;第三个机器人报前两个机器人和自己的编号。以此类推。
每个机器人一个编号。问k个报什么。
思路:简化M的值。
#include <stdio.h>
#include <string.h>
#include <algorithm>
#include<bits/stdc++.h>
using namespace std;
#define int unsigned long long
#define N 1500050
int arr[N]; signed main(){
int n,m;
cin>>n>>m; for(int i=;i<=n;i++){
cin>>arr[i]; if(m<=i){
continue;
}else{
m-=i;
}
}
cout<<arr[m];
return ;
}
C. Cinema
题意:有n个人,每个人只会一种语言(不同编号表不同语言)。
现在有m部电影,每部电影的声音是a[i],字幕是b[i]。(a[i]输入完输入b[i])
如果听得懂声音,他会非常满意,如果字幕他能看懂的话他会比较满意,否则它很不满意。
现在问看哪部电影会使得n个人满意最高(如果两部电影使n个人非常满意的人数相同时,选比较满意的最多的)。
思路:看了一些大佬的博客,都是用离散化。可是菜菜的我不会离散化QAQ。结果用个哈希MAP。居然水过。unordered_map<int,int> mp是个好东西。。。。。。。。。。。
#include<bits/stdc++.h> using namespace std;
#define int long long
struct str{
int x,y,id;
}st[];
unordered_map<int,int> mp;
bool cmp(str a,str b){
if(mp[a.x]!=mp[b.x]){
return mp[a.x]>mp[b.x];
}else{
return mp[a.y]>mp[b.y];
}
}
signed main(){
int n;
cin>>n;
for(int i=;i<=n;i++){
int temp;
scanf("%lld",&temp);
mp[temp]++;
}
int m;
cin>>m;
for(int i=;i<=m;i++){
scanf("%lld",&st[i].x);
st[i].id=i;
}
for(int i=;i<=m;i++){
scanf("%lld",&st[i].y);
}
sort(st+,st++m,cmp);
cout<<st[].id;
return ;
}
D1. Magic Powder
题意:做一个蛋糕需要n个原材料,现有k个魔法材料,魔法材料可以替代成任何材料,现在告诉你蛋糕每个材料需要多少,以及你现在有多少个,问你最多能够做出多少个蛋糕来。
思路:看了一下数据范围,然后开始暴力。
AC代码:
/* 10 926
5 6 8 1 2 5 1 8 4 4
351 739 998 725 953 970 906 691 707 1000
*/
#include<bits/stdc++.h> using namespace std;
#define int long long
map<int,int> mp;
int arr[];
signed main(){
int n,m;
cin>>n>>m;
int temp;
for(int i=;i<=n;i++){
scanf("%lld",&temp);
mp[i]=temp;
}
for(int i=;i<=n;i++){
scanf("%lld",&arr[i]);
}
int ans=;
while(){
int flag=;
for(int i=;i<=n;i++){
if(arr[i]>=mp[i]){
arr[i]-=mp[i];
}else{
int x=mp[i]-arr[i];
if(x<=m){
m-=x;
arr[i]+=x;
arr[i]-=mp[i];
}else{
flag=;
break;
}
}
}
if(flag){
ans++;
}else{
break;
}
}
cout<<ans; return ;
}
D2. Magic Powder
二分做法。感觉以前做过类似的题目。
#include<bits/stdc++.h> using namespace std;
#define N 190000
#define int unsigned long long
int n,k;
int arr[N];
int vis[N];
signed main(){
scanf("%lld%lld",&n,&k);
for(int i=;i<=n;i++)
{
int temp;
scanf("%lld",&temp);
vis[i]=temp;
}
for(int i=;i<=n;i++)
{
scanf("%lld",&arr[i]);
}
int l=;
int r=;
while(l<=r){
int mid=(l+r)/;
int sum=;
for(int i=;i<=n;i++){
if(arr[i]<vis[i]*mid){
sum+=vis[i]*mid-arr[i];
}
if(sum>k){
break;
}
}
if(sum==k){
cout<<mid;
return ;
}else if(sum<k){
l=mid+;
}else{
r=mid-;
}
}
cout<<l-;
return ;
}
Codeforces Round #350 (Div. 2) A B C D1 D2 水题【D2 【二分+枚举】好题】的更多相关文章
- Codeforces Round #350 (Div. 2)A,B,C,D1
A. Holidays time limit per test 1 second memory limit per test 256 megabytes input standard input ou ...
- Codeforces Round #368 (Div. 2) A. Brain's Photos (水题)
Brain's Photos 题目链接: http://codeforces.com/contest/707/problem/A Description Small, but very brave, ...
- Codeforces Round #350 (Div. 2) E. Correct Bracket Sequence Editor 模拟
题目链接: http://codeforces.com/contest/670/problem/E 题解: 用STL的list和stack模拟的,没想到跑的还挺快. 代码: #include<i ...
- Codeforces Round #350 (Div. 2) D2. Magic Powder - 2
题目链接: http://codeforces.com/contest/670/problem/D2 题解: 二分答案. #include<iostream> #include<cs ...
- Codeforces Round #350 (Div. 2) E. Correct Bracket Sequence Editor (链表)
题目链接:http://codeforces.com/contest/670/problem/E 给你n长度的括号字符,m个操作,光标初始位置是p,'D'操作表示删除当前光标所在的字符对应的括号字符以 ...
- Codeforces Round #350 (Div. 2)解题报告
codeforces 670A. Holidays 题目链接: http://codeforces.com/contest/670/problem/A 题意: A. Holidays On the p ...
- Codeforces Round #350 (Div. 2) E. Correct Bracket Sequence Editor 栈 链表
E. Correct Bracket Sequence Editor 题目连接: http://www.codeforces.com/contest/670/problem/E Description ...
- Codeforces Round #350 (Div. 2) D1. Magic Powder - 1 二分
D1. Magic Powder - 1 题目连接: http://www.codeforces.com/contest/670/problem/D1 Description This problem ...
- Codeforces Round #350 (Div. 2) C. Cinema 水题
C. Cinema 题目连接: http://www.codeforces.com/contest/670/problem/C Description Moscow is hosting a majo ...
随机推荐
- 【Docker】:docker安装ELK(logstash,elasticsearch,kibana)
一:安装logstash 1.拉取镜像 docker pull logstash:5.6.11 2.创建目录 mkdir /docker/logstash cd /docker/logstash 3. ...
- vs2019将小游戏打包成msi踩的坑(个人)
1.VS无Setup projecrt? vs2015之前是自带打包msi功能的,vs2017之后需要自己去下载插件: 下载地址:https://marketplace.visualstudio.co ...
- scratch少儿编程——03、动作:运动的开始,游戏的基础。
各位小伙伴大家好: 从这一期开始我们来学Scratch的具体操作. 第一季我们会从每一个脚本模块开始.一个程序块一个程序块去操作,感受它的效果. 今天我们来一起学习程序区的脚本类动作模块的指令. 动作 ...
- 如何用Dome4j(2.2.1)创建Xml
XML解析器常见的有两种: 1.SAX解析器,用于xml的简单API 2.DOM解析器,文档对象模型 DOM就是利用对象来把文本模型化,但是模型实现有以下几个基本的点: 1. 用来表示.操作文档的接口 ...
- asp.net core-14.JWT认证授权 生成 JWT Token
源码下载 语言组织能力不好 ,看这个 视频 用visual studio code打开文件,运行dotnet watch run 之后在postman里面去访问 拿到Token后
- (十二)SpringBoot之Spring-Data-Jpa(一)
一.Spring-Data-Jpa概念 JPA(Java Persistence API)定义了一系列对象持久化的标准,目前实现这一规范的产品有Hibernate.TopLink等. Spring D ...
- Spring Boot Redis 分布式缓存的使用
一.pom 依赖 <!-- 分布式缓存 --> <dependency> <groupId>org.springframework.boot</groupId ...
- 奇妙的算法【4】-汉诺塔&哈夫曼编码
1,汉诺塔问题[还是看了源码才记起来的,记忆逐渐清晰] 汉诺塔:汉诺塔(又称河内塔)问题是源于印度一个古老传说的益智玩具.大梵天创造世界的时候做了三根金刚石柱子,在一根柱子上从下往上按照大小顺序摞着6 ...
- 【es6】将2个数组合并为一个数组
//第一种 一个数组中的值为key 一个数组中的值为value let arr1 = ['内存','颜色','尺寸']; let arr2 = [1,2,3]; let temp = arr1.map ...
- java毫秒级别定时器
java每100毫秒执行一次 //每100毫秒秒执行一次 @Scheduled(fixedRate = 100) public void testScheduler() { System.out.pr ...