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 ...
随机推荐
- yii2中通过migration创建数据表
### yii2中通过migration创建数据表 准备工作: 1.首先保证php写入了环境变量 2.在项目内创建migrations目录(base版的需要手动创建) 3.配置文件中正确配置了数据库信 ...
- BZOJ3879 SvT(后缀树+虚树)
对反串建SAM得到后缀树,两后缀的lcp就是其在后缀树上lca的len值,于是每次询问对后缀树建出虚树并统计答案即可. #include<iostream> #include<cst ...
- C# DataContractJsonSerializer
DataContractJsonSerializer dataSerializer = new DataContractJsonSerializer(request.getBizContentClas ...
- html如何点击子元素事件而不触发父元素的点击事件——阻止冒泡
如果子元素和父元素都有点击事件,会出现点击事件冒泡的情况. 1.如何避免冒泡: html: <html> <head></head> <body> &l ...
- Vs2019 C# .net core 将证书添加到受信任的根证书存储失败,出现以下错误:访问控制列表(ACL)结构无效
https://www.cnblogs.com/xiyuan/p/10632579.html 使用 vs2017 创建一个 ASP.NET Core Web 应用程序 -> Ctrl + F5 ...
- 八、wepy代码规范
变量与方法尽量使用驼峰式命名,并且注意避免使用$开头. 以$开头的标识符为WePY框架的内建属性和方法,可在JavaScript脚本中以this.的方式直接使用,具体请参考API文档. 小程序入口.页 ...
- row_number() over()函数基本用法
简单的说row_number()从1开始,为每一条分组记录返回一个数字,这里的ROW_NUMBER() OVER (ORDER BY xlh DESC) 是先把xlh列降序,再为降序以后的没条xlh记 ...
- Python考试_第三次
- python 全栈11期月考题 一 基础知识:(70分) 1.文件操作有哪些模式?请简述各模式的作用(2分) 2.详细说明tuple.list.dict的用法,以及它们的特点(3分) 3.解释生成 ...
- nodejs入门API之http模块
HTTP上的一些API及应用 HTTP模块上的服务(server)与响应(response) HTTP模块上的消息(message) HTTP模块上的代理(agent)与请求(request) HTT ...
- 转:基于Maven管理的JavaWeb项目目录结构参考
通常在创建JavaWeb项目时多多少少都会遵循一些既定的比较通用的目录结构,下面分享一张基于Maven管理的JavaWeb项目目录结构参考图: 上图仅是参考,不同项目不同团队都有自己的约定和规范. 个 ...