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待补}的更多相关文章

  1. Codeforces Round #598 (Div. 3)- E. Yet Another Division Into Teams - 动态规划

    Codeforces Round #598 (Div. 3)- E. Yet Another Division Into Teams - 动态规划 [Problem Description] 给你\( ...

  2. 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 ...

  3. Codeforces Round 363 Div. 1 (A,B,C,D,E,F)

    Codeforces Round 363 Div. 1 题目链接:## 点击打开链接 A. Vacations (1s, 256MB) 题目大意:给定连续 \(n\) 天,每天为如下四种状态之一: 不 ...

  4. 【CF1256】Codeforces Round #598 (Div. 3) 【思维+贪心+DP】

    https://codeforces.com/contest/1256 A:Payment Without Change[思维] 题意:给你a个价值n的物品和b个价值1的物品,问是否存在取物方案使得价 ...

  5. Codeforces Round #598 (Div. 3)E(dp路径转移)

    题:https://codeforces.com/contest/1256/problem/E 题意:给一些值,代表队员的能力值,每组要分3个或3个以上的人,然后有个评价值x=(队里最大值-最小值), ...

  6. Codeforces Round #598 (Div. 3)

    传送门 A. Payment Without Change 签到. Code /* * Author: heyuhhh * Created Time: 2019/11/4 21:19:19 */ #i ...

  7. 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 ...

  8. 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 ...

  9. 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 ...

随机推荐

  1. Html大段文本自适应换行显示-SSM

    只处理前端: <style> .ctl{ table-layout:fixed } .ctl td{ word-break:break-all } </style> <d ...

  2. python-pillow图像处理模块

    from PIL import ImageColor ImageColor.getcolor('red','RGB') #颜色 模式 ImageColor.getcolor('red','RGBA') ...

  3. 怎样理解数组的空元素empty与undefined的区别

    数组的空元素empty表示空位, 它不是一种数据类型, 而是由于人为修改arr.length 或者写入时多写了逗号造成的. var arr = [1,2,3,4,,,5]; arr.length; a ...

  4. (三)CXF之处理输入参数与输出类型为复杂类型的webService服务

    一.需求 调用webService服务,把用户名和密码封装为用户对象作为参数,返回该用户所用友的角色列表. 二.发布服务 2.1 编写服务接口 @WebService public interface ...

  5. (三十一)web 开发基础项目

    1. 编写index.jsp <%@ page language="java" contentType="text/html; charset=UTF-8" ...

  6. 【转载】SpringBoot yml 配置

    1. 在 spring boot 中,有两种配置文件,一种是application.properties,另一种是application.yml,两种都可以配置spring boot 项目中的一些变量 ...

  7. C#从零单排上王者系列---元组

    从零单排系列说明 博主最初的想法是想写个蜕茧成蝶的系列文章,后来觉得博客的表现形式很难做到连贯和系统.所以从本篇博客开始博主会选择书中比较重要和不好理解的知识点并结合自己的实际工作经验来讲解,不再是照 ...

  8. 使用百度echarts仿雪球分时图(一)

    第一次写技术博客,有不足的地方希望大家指证出来,我再加以改正,谢谢大家. 之前一直没有找到一个合适的分时图项目,所以决定自己动手撸一个.接触的图表框架不多,在网上看到不少人推荐使用echarts,看了 ...

  9. 【Salesforce】入门篇

    Salesforce.com 一开始是一个云端的销售自动化(Sales Force Automation, SFA)以及客户关系管理工具(Customer Relationship Managemen ...

  10. Linux的关机和重启命令

    Linux有如下的关机和重启命令:shutdown, reboot, halt, poweroff,那么它们有什么区别呢? shutdown - 建议使用的命令 shutdown是最常用也是最安全的关 ...