Codeforces Round #598 (Div. 3) A,B,C,D{E,F待补}
A. Payment Without Change
#include<bits/stdc++.h> using namespace std;
#define int long long
#define N 100500
int arr[N];
signed main(){
int _;
cin>>_;
while(_--){
int a,b,n,s;
cin>>a>>b>>n>>s;
int y=s/n;
int x=min(a,y);
s-=x*n;
if(b>=s){
printf("YES\n");
} else{
printf("NO\n");
}
}
return ;
}
B. Minimize the Permutation
按照题意暴力就行。从1到n枚举,每个数尽量地往前和比他大的数交换。并且保证相邻的位置只能换一次。【比赛·的时候读错题意,还想错了思路QAQ难受====】
#include<bits/stdc++.h> using namespace std;
#define int long long
#define N 150
int arr[N];int vis[N];
signed main(){
int _;
cin>>_;
while(_--){ int n;cin>>n;
for(int i=;i<=n;i++)
cin>>arr[i];
int m=n-;
while(){
int flag=;
for(int i=n-;i>=;i--){
if(vis[i])
continue;
if(arr[i]>arr[i+]){
int t=arr[i];
arr[i]=arr[i+];
arr[i+]=t;
m--;
flag=;
vis[i]=;
if(m<=){
break;
}
}
}
if(m<=){
break;
}
if(!flag){
break;
}
}
for(int i=;i<=n;i++){
printf("%lld ",arr[i]);
} printf("\n");
for(int i=;i<=n+;i++)
arr[i]=vis[i]=;
}
return ;
}
C. Platforms Jumping(贪心)【补题】
贪心:在板之间加水。这样保证了所有的板都用上了。最后再特盘一个不能到达的情况即可。开始模拟。【这题调了一会BUG,好久没刷题的,代码都打不清楚了QAQQAQQAQ】
#include<bits/stdc++.h> using namespace std;
#define int long long
#define N 150000
int arr[N];int n,m,k;
int c[N];
struct str{
int id;
int length;
}st[N]; signed main(){
cin>>n>>m>>k;
int Sum=;
int POS=;
for(int i=;i<=m;i++){
POS+=k;
scanf("%lld",&st[i].length);
st[i].id=i;
POS+=st[i].length-;
Sum+=st[i].length;
}
POS+=k;
if(POS<n+){
printf("NO\n");
return ;
}
printf("YES\n");
int tot=n-Sum;
int flag=;
int dis=k-;int now=;
int pos=;
//out<<tot<<endl;
for(int i=;i<=m;i++){
if(flag==){
int temp=min(dis,tot);
tot-=temp;
if(tot<=){
flag=;
}
while(temp--)
arr[++now]=;
temp=st[i].length;
// Sum-=temp;
while(temp--)
arr[++now]=i;
}else{
int _;_=st[i].length;
while(_--)
arr[++now]=i;
}
if(now>=n+){
break;
}
}
for(int i=;i<=n;i++)
cout<<arr[i]<<" ";
printf("\n"); return ;
}
D. Binary String Minimizing(贪心)
从左到右每个0依次和当前最左边的1交换,消耗这两个数下标之差的交换次数。
如果次数不够用,就让这个0和最远的能交换的1交换位置。
直接模拟就行。
#include<bits/stdc++.h>
using namespace std;
#define int long long
signed main(){
int _;
cin>>_;
while(_--){
int left=;
int n,m;cin>>n>>m;string str;cin>>str;
for(int i=;i<str.size();i++){
if(str[i]==''){
left=i;
break;
}
}
for(int i=;i<str.size();i++){
if(str[i]==''&&i!=){
while(str[left]!=''&&left<str.size())
left++;
if(left<i){ if(m>=(i-left)){
m-=(i-left);
str[left]='';
str[i]='';
}else{
str[i-m]='';
str[i]='';
m=;
}
if(m<=){
break;
}
}
}
}
cout<<str<<endl;
}
return ;
}
用vector记录0的位置,然后模拟
#include<bits/stdc++.h> using namespace std;
#define int unsigned long long
#define N 1000500
int vis[N];
vector<int> v;
signed main(){
int _;
cin>>_;
while(_--){
int n,m;
cin>>n>>m;string str;
v.clear();cin>>str;
int left=;
int sum0=;int sum1=;
for(int i=;i<str.size();i++){
if(str[i]==''){
if(m>=(i-left)){
m-=(i-left);
sum0++;
left++;
}else{ if(m){
v.push_back(i-m);m=;
}else{
v.push_back(i);
}
}
}else{
sum1++;
}
}
int len=v.size();
for(int i=;i<sum0;i++){
cout<<"";
}int cnt=;
for(int i=sum0;i<n;i++){
if(cnt<len){
if(v[cnt]==i){
cout<<"";
cnt++;
}else{
cout<<"";
}
}else{
cout<<"";
}
}
printf("\n"); }
return ;
} /*
11011010
01111010
*/
E,F待补。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
一场掉了分的DIV3。。。
Codeforces Round #598 (Div. 3) A,B,C,D{E,F待补}的更多相关文章
- Codeforces Round #598 (Div. 3)- E. Yet Another Division Into Teams - 动态规划
Codeforces Round #598 (Div. 3)- E. Yet Another Division Into Teams - 动态规划 [Problem Description] 给你\( ...
- Codeforces Round #267 (Div. 2) C. George and Job(DP)补题
Codeforces Round #267 (Div. 2) C. George and Job题目链接请点击~ The new ITone 6 has been released recently ...
- Codeforces Round 363 Div. 1 (A,B,C,D,E,F)
Codeforces Round 363 Div. 1 题目链接:## 点击打开链接 A. Vacations (1s, 256MB) 题目大意:给定连续 \(n\) 天,每天为如下四种状态之一: 不 ...
- 【CF1256】Codeforces Round #598 (Div. 3) 【思维+贪心+DP】
https://codeforces.com/contest/1256 A:Payment Without Change[思维] 题意:给你a个价值n的物品和b个价值1的物品,问是否存在取物方案使得价 ...
- Codeforces Round #598 (Div. 3)E(dp路径转移)
题:https://codeforces.com/contest/1256/problem/E 题意:给一些值,代表队员的能力值,每组要分3个或3个以上的人,然后有个评价值x=(队里最大值-最小值), ...
- Codeforces Round #598 (Div. 3)
传送门 A. Payment Without Change 签到. Code /* * Author: heyuhhh * Created Time: 2019/11/4 21:19:19 */ #i ...
- Codeforces Round #598 (Div. 3) F. Equalizing Two Strings 构造
F. Equalizing Two Strings You are given two strings s and t both of length n and both consisting of ...
- Codeforces Round #598 (Div. 3) E. Yet Another Division Into Teams dp
E. Yet Another Division Into Teams There are n students at your university. The programming skill of ...
- Codeforces Round #598 (Div. 3) D. Binary String Minimizing 贪心
D. Binary String Minimizing You are given a binary string of length n (i. e. a string consisting of ...
随机推荐
- 解决maven项目无法读取src/main/java目录下面的配置文件问题
我们在用Mybatis去操作底层数据库的时候,需要用到xml配置文件,一般我们是把配置文件和dao放置在同一层目录. 但是在用idea操作maven项目的时候,我们可能会遇到无法读取到dao对应的ma ...
- python学习-15 基本数据类型4
1.range a = range(0 ,100 , 5) #创建>=0,<100的连续数字,步长为5 for b in a: print(b) 运算结果: 0 5 10 15 20 25 ...
- MySQL之mysqldump数据备份还原
一 mysqldump指令实现数据备份.mysql指令实现数据还原 经常有朋友问我,DBA到底是做什么的,百科上说:数据库管理员(Database Administrator,简称DBA),是从事管理 ...
- centos7无网络环境下创建基于scratch镜像的Linux镜像,并带有Java运行环境
一.准备 将下载好的jdk以及scratch镜像放在同一文件夹下:这里放在linux:2.0 二.导入scratch镜像 #docker load -i scratch.tar 三.创建dockerf ...
- 将自定义dockerfile生成的image推送到仓库中
本文为以阿里云的案例方法,其他方法未尝试 1.注册阿里云账号 2.设置密码并通过docker登录 3.创建命名空间 4.创建镜像仓库 创建仓库时,需要选择代码源的仓库储存的方式,这里我用的是gitHu ...
- 简单标签(SimpleTag) 学习
一.由于传统标签使用三个标签接口来完成不同的功能,显得过于繁琐,不利于标签技术的推广, SUN公司为降低标签技术的学习难度,在JSP 2.0中定义了一个更为简单.便于编写和调用的SimpleTag接口 ...
- nexus 匿名用户的问题。
为了做到安全和不浪费我们自己的服务器资源,要绝对拒绝匿名用户进行访问: 1,不允许匿名用户访问 2,禁用匿名的账号 以下是这2点的设置图. ============================== ...
- 面试题之String s="a"+"b"+"c"+"d";
今天遇到了一个面试题的选择,我当时真的没怎么在意,其实挺好玩的. 1.这条语句String s="a"+"b"+"c"+"d&qu ...
- stm32 i2c eeprom 24C02
电路图 相关文章:http://blog.csdn.net/zhangxuechao_/article/details/74936798 举例 #define i2c_scl PBout(10) #d ...
- 理解JVM之JAVA运行时内存区域
java运行时内存区域划分为方法区,堆区,虚拟机栈区,本地方法栈,程序计数器.其中方法区跟堆区是线程共享的数据区,其他的是线程私有的数据区. 1.程序计数器 程序计数器(PC)是一块较小的内存,他是存 ...