Codeforces Beta Round #55 (Div. 2)

http://codeforces.com/contest/59

A

 #include<bits/stdc++.h>
using namespace std;
#define lson l,mid,rt<<1
#define rson mid+1,r,rt<<1|1
#define sqr(x) ((x)*(x))
#define pb push_back
#define eb emplace_back
#define maxn 1000005
#define rep(k,i,j) for(int k=i;k<j;k++)
typedef long long ll;
typedef unsigned long long ull; int main(){
#ifndef ONLINE_JUDGE
// freopen("input.txt","r",stdin);
#endif
std::ios::sync_with_stdio(false);
string str;
cin>>str;
int big=,small=;
for(int i=;i<str.length();i++){
if(str[i]>='A'&&str[i]<='Z'){
big++;
}
else{
small++;
}
}
if(big<=small){
for(int i=;i<str.length();i++){
if(str[i]>='A'&&str[i]<='Z'){
str[i]+=;
}
cout<<str[i];
}
}
else{
for(int i=;i<str.length();i++){
if(str[i]>='a'&&str[i]<='z'){
str[i]-=;
}
cout<<str[i];
}
}
}

B

 #include<bits/stdc++.h>
using namespace std;
#define lson l,mid,rt<<1
#define rson mid+1,r,rt<<1|1
#define sqr(x) ((x)*(x))
#define pb push_back
#define eb emplace_back
#define maxn 1000005
#define rep(k,i,j) for(int k=i;k<j;k++)
typedef long long ll;
typedef unsigned long long ull; int a[]; int main(){
#ifndef ONLINE_JUDGE
// freopen("input.txt","r",stdin);
#endif
std::ios::sync_with_stdio(false);
int n;
cin>>n;
int ans=;
int sum=;
int ji=0x3f3f3f3f,ou=0x3f3f3f3f;
for(int i=;i<=n;i++){
cin>>a[i];
if(a[i]%&&a[i]<ji) ji=a[i];
if((a[i]%==)&&a[i]<ou) ou=a[i];
sum+=a[i];
}
if(sum%)cout<<sum<<endl;
else{
if(ji!=0x3f3f3f3f) cout<<sum-ji<<endl;
else cout<<<<endl;
}
}

C

模拟,找出前str.length()/2中,str[i]=='?'&&str[str.length()-1-i]=='?'的个数,然后贪心

 #include<bits/stdc++.h>
using namespace std;
#define lson l,mid,rt<<1
#define rson mid+1,r,rt<<1|1
#define sqr(x) ((x)*(x))
#define pb push_back
#define eb emplace_back
#define maxn 1000005
#define rep(k,i,j) for(int k=i;k<j;k++)
typedef long long ll;
typedef unsigned long long ull; int main(){
#ifndef ONLINE_JUDGE
freopen("input.txt","r",stdin);
#endif
std::ios::sync_with_stdio(false);
int n;
map<char,int>mp;
string str;
cin>>n>>str;
int prex=,prey=;
int num=;
rep(i,,str.length()){
if(str[i]!='?')
mp[str[i]]=;
}
int len=str.length()+;
int L=len-;
len/=;
rep(i,,len){
if(str[i]=='?'&&str[L-i-]=='?') num++;
}
int k=n-mp.size();
rep(i,,len){
if(num<k){
cout<<"IMPOSSIBLE"<<endl;
return ;
}
if(i==L-i-){
if(str[i]=='?'){
if(num->=k){
if(mp['a']){
str[i]='a';
num--;
}
else{
str[i]='a';
mp['a']=;
num--;
k--;
}
}
else if(num->=k-){
int flag=;
rep(j,,){
if(mp[char(j+'a')]==){
mp[char(j+'a')]=;
num--;
k--;
str[i]=char(j+'a');
flag=;
break;
}
}
if(flag){
cout<<"IMPOSSIBLE"<<endl;
return ;
}
}
else{
cout<<"IMPOSSIBLE"<<endl;
return ;
}
}
}
else if(str[i]=='?'&&str[L-i-]!='?'){
str[i]=str[L-i-];
}
else if(str[i]!='?'&&str[L-i-]=='?'){
str[L-i-]=str[i];
}
else if(str[i]=='?'&&str[L-i-]=='?'){
prex=i,prey=L-i-;
if(num->=k){
if(mp['a']){
str[i]='a';
str[L-i-]='a';
num-=;
}
else{
mp['a']=;
k--;
num-=;
str[i]='a';
str[L-i-]='a';
}
}
else if(num->=k-){
int flag=;
rep(j,,){
if(mp[char(j+'a')]==){
mp[char(j+'a')]=;
k--;
num-=;
str[i]=char(j+'a');
str[L-i-]=char(j+'a');
flag=;
break;
}
}
if(flag){
cout<<"IMPOSSIBLE"<<endl;
return ;
}
}
else{
cout<<"IMPOSSIBLE"<<endl;
return ;
}
}
else if(str[i]!='?'&&str[L-i-]!='?'){
if(str[i]!=str[L-i-]){
cout<<"IMPOSSIBLE"<<endl;
return ;
}
}
}
// cout<<k<<endl;
// cout<<prex<<" "<<prey<<endl;
if(k==){
int flag=;
rep(i,,){
if(mp[char(i+'a')]==){
str[prex]=char(i+'a');
str[prey]=char(i+'a');
flag=;
break;
k--;
}
}
if(flag){
cout<<"IMPOSSIBLE"<<endl;
return ;
}
}
cout<<str<<endl;
}

D

模拟

 #include<bits/stdc++.h>
using namespace std;
#define lson l,mid,rt<<1
#define rson mid+1,r,rt<<1|1
#define sqr(x) ((x)*(x))
#define pb push_back
#define eb emplace_back
#define maxn 1000005
#define rep(k,i,j) for(int k=i;k<j;k++)
typedef long long ll;
typedef unsigned long long ull; int a[],b[];
int book[]; int main(){
#ifndef ONLINE_JUDGE
freopen("input.txt","r",stdin);
#endif
std::ios::sync_with_stdio(false);
int n;
cin>>n;
rep(i,,*n) cin>>b[i];
rep(i,,*n) cin>>a[i];
int k;
cin>>k;
int pos=,group,pp=;
while(a[pos]!=k) pos++;
group=pos/+;
rep(i,,*(group-)) book[a[i]]=true;
rep(i,,*n) if(!book[b[i]]){
pp=i;break;
}
if(a[pos]!=b[pp]) sort(a,a+*n);
else{
int flag=-;
rep(i,*(group-),*group) if(i!=pos) flag=max(flag,a[i]);
sort(a,a+*group);
int pos=;
while(a[pos]!=flag) pos++;
sort(a+pos+,a+*n);
}
rep(i,,*n) if(a[i]!=k) cout<<a[i]<<" ";
}

E

用bfs找最短路,book[i][j]表示当前走到j,它的前一步是在i位置,然后book[i][j]记录的是它的前一步在队列中的位置

 #include<bits/stdc++.h>
using namespace std;
#define lson l,mid,rt<<1
#define rson mid+1,r,rt<<1|1
#define sqr(x) ((x)*(x))
#define pb push_back
#define eb emplace_back
#define maxn 1000005
#define rep(k,i,j) for(int k=i;k<j;k++)
typedef long long ll;
typedef unsigned long long ull; vector<int>ve[];
int book[][];
int n,m,k;
set< pair<int,pair<int,int> > >se;
set< pair<int,pair<int,int> > >::iterator it; struct sair{
int pre,now,step;
}Q[]; int bfs(){
sair s,e;
s.pre=,s.now=,s.step=;
int L=,R=;
Q[R++]=s;
int u;
while(L<R){
s=Q[L++];
rep(i,,ve[s.now].size()){
u=ve[s.now][i];
if(!book[s.now][u]){
it=se.find(make_pair(s.pre,make_pair(s.now,u)));
if(it==se.end()){
e.pre=s.now;
e.now=u;
e.step=s.step+;
book[e.pre][e.now]=L-;
Q[R++]=e; if(u==n){
cout<<e.step<<endl;
return R-;
} }
}
}
}
return ;
} void dfs(int pos){
if(pos==) exit();
if(pos==){
cout<<Q[pos].now<<" ";
return;
}
dfs(book[Q[pos].pre][Q[pos].now]);
cout<<Q[pos].now<<" ";
} int main(){
#ifndef ONLINE_JUDGE
freopen("input.txt","r",stdin);
#endif
std::ios::sync_with_stdio(false);
cin>>n>>m>>k;
int u,v;
rep(i,,m){
cin>>u>>v;
ve[u].pb(v);
ve[v].pb(u);
}
int w;
rep(i,,k){
cin>>u>>v>>w;
se.insert(make_pair(u,make_pair(v,w)));
}
int pos=bfs();
if(!pos) cout<<-<<endl;
else{
dfs(pos);
}
}

Codeforces Beta Round #55 (Div. 2)的更多相关文章

  1. Codeforces Beta Round #80 (Div. 2 Only)【ABCD】

    Codeforces Beta Round #80 (Div. 2 Only) A Blackjack1 题意 一共52张扑克,A代表1或者11,2-10表示自己的数字,其他都表示10 现在你已经有一 ...

  2. Codeforces Beta Round #83 (Div. 1 Only)题解【ABCD】

    Codeforces Beta Round #83 (Div. 1 Only) A. Dorm Water Supply 题意 给你一个n点m边的图,保证每个点的入度和出度最多为1 如果这个点入度为0 ...

  3. Codeforces Beta Round #79 (Div. 2 Only)

    Codeforces Beta Round #79 (Div. 2 Only) http://codeforces.com/contest/102 A #include<bits/stdc++. ...

  4. Codeforces Beta Round #77 (Div. 2 Only)

    Codeforces Beta Round #77 (Div. 2 Only) http://codeforces.com/contest/96 A #include<bits/stdc++.h ...

  5. Codeforces Beta Round #76 (Div. 2 Only)

    Codeforces Beta Round #76 (Div. 2 Only) http://codeforces.com/contest/94 A #include<bits/stdc++.h ...

  6. Codeforces Beta Round #75 (Div. 2 Only)

    Codeforces Beta Round #75 (Div. 2 Only) http://codeforces.com/contest/92 A #include<iostream> ...

  7. Codeforces Beta Round #74 (Div. 2 Only)

    Codeforces Beta Round #74 (Div. 2 Only) http://codeforces.com/contest/90 A #include<iostream> ...

  8. Codeforces Beta Round #73 (Div. 2 Only)

    Codeforces Beta Round #73 (Div. 2 Only) http://codeforces.com/contest/88 A 模拟 #include<bits/stdc+ ...

  9. Codeforces Beta Round #72 (Div. 2 Only)

    Codeforces Beta Round #72 (Div. 2 Only) http://codeforces.com/contest/84 A #include<bits/stdc++.h ...

随机推荐

  1. inno setup 安装前判断进程是否存在,以及停止相应进程<转>

    打包的时候遇到了这样的需求:假似用户都是傻瓜                  式操作,如果更新安装程序的时候,之前的老程序还在运行这个时候如果你去提示让用户吧老程序手动退掉也不现实. 所以当遇到这种 ...

  2. nodejs 热更新插件

    键入命令: npm -g install supervisor supervisor必须安装到全局 可以用supervisor 来启动服务 命令supervisor app.js

  3. Linux 完整卸载oracle和grid软件

    本文主要描述如何在Linux下完全卸载oracle和grid软件. 操作环境 SuSE11 oracle用户完整删除操作步骤 1.登录oracle用户,停止Oracle数据库监听和数据库实例 orac ...

  4. Android高级控件(下)

    Chronometer计时器 常用的方法 getBase() 基准时间 setFormat 设置显示格式 start() 开始计时 stop() 停止计时 setOnChronometerListen ...

  5. c#栈和队列习题

    3.1 比较线性表.栈和队列这三种数据结构的相同点和不同点. 栈(Stack)是限定只能在表的一端进行插入和删除操作的线性表.队列(Queue)是限定只能在表的一端进行插入和在另一端进行删除操作的线性 ...

  6. idea git 发起一个pull request 请求

  7. 吴裕雄 python深度学习与实践(3)

    import threading, time def doWaiting(): print('start waiting:', time.strftime('%S')) time.sleep(3) p ...

  8. 学JS的心路历程 - JS的Class

    没错,你没有看错,虽然前面说JS是原型继承,但在ES6以后新增了class关键字!!! 不过底层实作仍然是以原型继承方式进行,所以基本上算是一个语法糖. 今天我们就来看一下如何使用吧! class 首 ...

  9. java中Integer和int的区别(转)

    int和Integer的区别 1.Integer是int的包装类,int则是java的一种基本数据类型 2.Integer变量必须实例化后才能使用,而int变量不需要 3.Integer实际是对象的引 ...

  10. Elasticsearch搜索异常-------org.elasticsearch.common.io.stream.NotSerializableExceptionWrapper: parse_exception

    异常问题: Caused by: org.elasticsearch.index.query.QueryShardException: Failed to parse query [LOL: Uzi和 ...