Codeforces Round 1027 (Div. 2)(A~C)
前言:
这次最后一分钟通过C题,还是不错的,没开翻译把能做的做了就很满意。这几天要考英语四级和蓝桥杯国赛,就只放赛时代码了。
A. Equal Subsequences

点击查看代码
void solve(){
int n,k;
string s;
cin>>n>>k;
if(k==0){
s="";
for(int i=1;i<=n;i++)s+='0';
cout<<s<<endl;
}else if(k==n){
s="";
for(int i=1;i<=n;i++)s+='1';
cout<<s<<endl;
}else {
s="1";
for(int i=1;i<=n-k-1;i++){
s+='0';
}
for(int i=1;i<=k-1;i++)
s+='1';
s+='0';
cout<<s<<endl;
}
}
B. Make It Permutation

点击查看代码
#include <bits/stdc++.h>
#define int long long
#define endl "\n"
using namespace std;
int n,m,k,kk,u,v;
string s,ss;
int num[11][11];
struct node{
int w,x,y;
// bool operator <(const node&u)const{
// return w<u.w;
// }
}tr[N];
void solve(){
cin>>n;
// for(int i=1;i<=n;i++){
// for(int j=1;j<=n;j++)num[i][j]=j;
// }
idx=0;
int p=1;
for(int i=1;i<=n;i++){
if(p!=1)tr[idx++]={i,1,p};//,reverse(num[i]+1,num[i]+p+1);
if(p!=n)tr[idx++]={i,p+1,n};//,reverse(num[i]+1+p,num[i]+n+1);
p++;
}
// for(int i=1;i<=n;i++){
// for(int j=1;j<=n;j++)cout<<num[i][j];
// cout<<endl;
// }
cout<<idx<<endl;
for(int i=0;i<idx;i++){
cout<<tr[i].w<<" "<<tr[i].x<<" "<<tr[i].y<<endl;
}
}
signed main(){
ios::sync_with_stdio(0);cin.tie(0),cout.tie(0);
int _=1;
cin>>_;
while(_--) solve();
return 0;
}
C. Make It Beautiful

点击查看代码
#include <bits/stdc++.h>
#define PII pair<int,int>
#define int long long
#define endl "\n"
using namespace std;
const int N=1e6+10,M=1010,mod=1e9+7,INF=0x3f3f3f3f;
int n,m,k,kk,u,v;
bitset<60> a[N];
string s,ss;
void solve(){
cin>>n>>k;
for(int i=1;i<=n;i++)cin>>kk,a[i]=kk;//,cout<<a[i]<<endl;
int p=1;
for(int i=0;i<60;i++){
for(int j=1;j<=n;j++){
if(a[j][i]==0&&k>=p){
k-=p;
a[j][i]=1;
}
}
p*=2;
if(k<p)break;
}
int res=0;
for(int i=1;i<=n;i++)res+=a[i].count();
cout<<res<<endl;
}
signed main(){
ios::sync_with_stdio(0);cin.tie(0),cout.tie(0);
int _=1;
cin>>_;
while(_--) solve();
return 0;
}
浙公网安备 33010602011771号