Codeforces Beta Round #31 (Div. 2, Codeforces format)

http://codeforces.com/contest/31

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 maxn 1000005
typedef long long ll;
typedef unsigned long long ull;
/*#ifndef ONLINE_JUDGE
freopen("1.txt","r",stdin);
#endif */ int a[]; int main(){
#ifndef ONLINE_JUDGE
freopen("1.txt","r",stdin);
#endif
std::ios::sync_with_stdio(false);
int n;
cin>>n;
for(int i=;i<=n;i++) cin>>a[i];
for(int i=;i<=n;i++){
for(int j=;j<=n;j++){
for(int k=;k<=n;k++){
if(i!=j&&j!=k){
if(a[i]==a[j]+a[k]){
cout<<i<<" "<<j<<" "<<k<<endl;
return ;
}
}
}
}
}
cout<<-<<endl;
}

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 maxn 1000005
typedef long long ll;
typedef unsigned long long ull;
/*#ifndef ONLINE_JUDGE
freopen("1.txt","r",stdin);
#endif */ int a[]; int Check(string str){
int pre=-;
int pos=-;
for(int i=;i<str.length();i++){
if(str[i]=='@'){
pos=i;
if(pre<i-&&i+<str.length()){
pre=i+;
}
else{
return -;
}
}
}
return pos;
} int main(){
#ifndef ONLINE_JUDGE
// freopen("1.txt","r",stdin);
#endif
std::ios::sync_with_stdio(false);
string str;
cin>>str;
int pos=Check(str);
if(pos!=-){
for(int i=;i<str.length();i++){
cout<<str[i];
if(str[i]=='@'){ if(pos!=i){
cout<<str[i+];
i++; if(i<str.length()-){
cout<<',';
}
}
}
}
}
else cout<<"No solution"<<endl;
}

C

暴力

 #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 maxn 1000005
typedef long long ll;
typedef unsigned long long ull;
/*#ifndef ONLINE_JUDGE
freopen("1.txt","r",stdin);
#endif */
struct sair{
int s,e,pos;
}a[]; bool cmp(sair a,sair b){
if(a.s==b.s) return a.e<b.e;
return a.s<b.s;
} int main(){
#ifndef ONLINE_JUDGE
// freopen("1.txt","r",stdin);
#endif
std::ios::sync_with_stdio(false);
int n;
cin>>n;
for(int i=;i<n;i++){
cin>>a[i].s>>a[i].e;
a[i].pos=i+;
}
sort(a,a+n,cmp);
vector<int>ans;
int flag;
for(int i=;i<n;i++){
int pre=-;
flag=;
for(int j=;j<n;j++){
if(i!=j){
if(pre==-){
pre=a[j].e;
}
else{
if(pre>a[j].s){
flag=;
}
else{
pre=a[j].e;
}
}
}
}
if(!flag){
ans.pb(a[i].pos);
}
}
cout<<ans.size()<<endl;
sort(ans.begin(),ans.end());
for(int i=;i<ans.size();i++){
cout<<ans[i]<<" ";
}
}

D

bfs求连通块,模拟剪纸的过程

 #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 maxn 1000005
typedef long long ll;
typedef unsigned long long ull;
/*#ifndef ONLINE_JUDGE
freopen("1.txt","r",stdin);
#endif */ int n,m,k;
int book[][];
int dir[][]={,,,,,-,-,}; int bfs(int x,int y){
queue<pair<int,int> >Q;
int ans=;
book[x][y]=;
Q.push(make_pair(x,y));
pair<int,int>p;
while(!Q.empty()){
p=Q.front();
Q.pop();
for(int i=;i<;i++){
int xx=p.first+dir[i][];
int yy=p.second+dir[i][];
if(xx>=&&xx<=*n&&yy>=&&yy<=*m&&!book[xx][yy]){
book[xx][yy]=;
if((xx%)&&(yy%)){
ans++;
}
Q.push(make_pair(xx,yy));
}
}
}
return ans;
} int main(){
#ifndef ONLINE_JUDGE
freopen("1.txt","r",stdin);
#endif
std::ios::sync_with_stdio(false);
cin>>n>>m>>k;
int a,b,c,d;
while(k--){
cin>>a>>b>>c>>d;///边为偶数
a*=,b*=,c*=,d*=;
if(a==c){
if(b>d) swap(b,d);
for(int i=b;i<=d;i++){
book[a][i]=;
}
}
else{
if(a>c) swap(a,c);
for(int i=a;i<=c;i++){
book[i][b]=;
}
}
}
vector<int>ans;
for(int i=;i<=*n;i++){
for(int j=;j<=*m;j++){
if(!book[i][j]&&(i%)&&(j%)){
ans.pb(bfs(i,j));
}
}
}
sort(ans.begin(),ans.end());
for(int i=;i<ans.size();i++){
cout<<ans[i]<<" ";
}
cout<<endl;
}

E

题意:给2*n个数字,A和B各选n个各组成一个数,使得A+B的和最大

DP,细节在代码里

 #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 maxn 1000005
typedef long long ll;
typedef unsigned long long ull;
/*#ifndef ONLINE_JUDGE
freopen("1.txt","r",stdin);
#endif */ ll dp[][];
ll p[]; int main(){
#ifndef ONLINE_JUDGE
// freopen("1.txt","r",stdin);
#endif
std::ios::sync_with_stdio(false);
int n;
string str;
cin>>n;
cin>>str;
int len=*n;
p[]=;
for(int i=;i<=;i++){
p[i]=p[i-]*;
}
///dp[i][j] 表示A选了i个,B选了j个,dp[i][j]记录的是A+B的和
for(int i=;i<=n;i++){
for(int j=;j<=n;j++){
ll tmp=str[*n-i-j]-'';///从后向前推
if(i){
dp[i][j]=dp[i-][j]+tmp*p[i-];
}
if(j){
dp[i][j]=max(dp[i][j],dp[i][j-]+tmp*p[j-]);
}
cout<<dp[i][j]<<endl;
}
}
int i=n,j=n;
while(i||j){
ll tmp=str[*n-i-j]-'';
if(i>&&(tmp*p[i-]+dp[i-][j]==dp[i][j])){
cout<<'H';
i--;
}
else{
cout<<'M';
j--;
}
}
cout<<endl;
}

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

  1. Codeforces Beta Round #32 (Div. 2, Codeforces format)

    Codeforces Beta Round #32 (Div. 2, Codeforces format) http://codeforces.com/contest/32 A #include< ...

  2. Codeforces Beta Round #29 (Div. 2, Codeforces format)

    Codeforces Beta Round #29 (Div. 2, Codeforces format) http://codeforces.com/contest/29 A #include< ...

  3. Codeforces Beta Round #29 (Div. 2, Codeforces format) C. Mail Stamps 离散化拓扑排序

    C. Mail Stamps Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/problemset/problem ...

  4. Codeforces Beta Round #29 (Div. 2, Codeforces format) C. Mail Stamps 拓扑排序

    C. Mail Stamps     One day Bob got a letter in an envelope. Bob knows that when Berland's post offic ...

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

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

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

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

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

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

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

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

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

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

随机推荐

  1. 现学现卖——Keil uVision 使用教程

    Keil uVision 使用教程 1.如果有旧的工程在,先关闭旧工程.Project -> Close Project2.新建工程.Project -> New uVision Proj ...

  2. RocketMQ服务搭建_1

    rocketmq是阿里研发,并贡献给Apache的一款分布式消息中间件. RcoketMQ 是一款低延迟.高可靠.可伸缩.易于使用的消息中间件. ACE环境:(Adapted communicatio ...

  3. Django权限auth模块详解

    转自:http://www.cnblogs.com/Finley/p/5575305.html 1,auth模块是Django提供的标准权限管理系统,可以提供用户身份认证,用户组和权限管理 2,aut ...

  4. linux 一种小的性能优化手段

    在编写内核模块的过程中,我们经常会创建percpu的hash表,比如定义结构如下: struct A { int a: int b: struct hlist_node   hlist_node;-- ...

  5. linux 内核中一个全局变量引发的性能问题

    为了调试一个功能,在一个内核模块中,增加了一个全局变量,用来统计自有skb池的申请情况. 因为是临时增加,所以没有考虑性能,一开始只是一个fail的统计,数量不多,也不太考虑是否有计数丢失的情况,毕竟 ...

  6. vue中嵌套页面(iframe)

    vue中嵌套iframe,将要嵌套的文件放在static下面.(要将打包文件整体放在statici里,我的文件名是canvas) src可以使用相对路径,也可使用服务器根路径http:localhos ...

  7. Android DevArt3:SingleTask启动模式探究:首先从MainActivity启动案例入口AActivity,并在A中启动BActivity,从B启动CActivity, 再从C中又启动AActivity, 最后在A中启动B,现在按两次back键,然后回到的是哪个Activity? 答案是,回到MainActivity。

    SingleTask启动模式探究 GitHub如题:首先从MainActivity启动案例入口AActivity,并在A中启动BActivity,从B启动CActivity,再从C中又启动AActiv ...

  8. Html - Table 表头固定和 tbody 设置 height 在IE不起作用的解决

    原文地址,转载请注明出处:http://www.cnblogs.com/jying/p/6294063.html 做项目的时候发现给 tbody设置 height 和 overflow-y 在IE下不 ...

  9. JSTL标签不起作用的解决办法

    JSP页面中的EL标签直接成字符串输出(如:${user.id}),说明el标签没有被识别,造成的原因有: 1.jdk+jstl的组合不匹配 2.web.xml版本不匹配 但我们解决以上这个问题时,先 ...

  10. Kubernetes K8s

    1 Kubernetes入门及概念介绍 Kubernetes(K8s)是自动化容器操作的开源平台,这些操作包括部署,调度和节点集群间扩展.开源将Docker 看成Kubernetes内部使用的低级别组 ...