Codeforces Beta Round #31 (Div. 2, Codeforces format)
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)的更多相关文章
- Codeforces Beta Round #32 (Div. 2, Codeforces format)
Codeforces Beta Round #32 (Div. 2, Codeforces format) http://codeforces.com/contest/32 A #include< ...
- Codeforces Beta Round #29 (Div. 2, Codeforces format)
Codeforces Beta Round #29 (Div. 2, Codeforces format) http://codeforces.com/contest/29 A #include< ...
- 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 ...
- 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 ...
- Codeforces Beta Round #80 (Div. 2 Only)【ABCD】
Codeforces Beta Round #80 (Div. 2 Only) A Blackjack1 题意 一共52张扑克,A代表1或者11,2-10表示自己的数字,其他都表示10 现在你已经有一 ...
- Codeforces Beta Round #83 (Div. 1 Only)题解【ABCD】
Codeforces Beta Round #83 (Div. 1 Only) A. Dorm Water Supply 题意 给你一个n点m边的图,保证每个点的入度和出度最多为1 如果这个点入度为0 ...
- Codeforces Beta Round #79 (Div. 2 Only)
Codeforces Beta Round #79 (Div. 2 Only) http://codeforces.com/contest/102 A #include<bits/stdc++. ...
- Codeforces Beta Round #77 (Div. 2 Only)
Codeforces Beta Round #77 (Div. 2 Only) http://codeforces.com/contest/96 A #include<bits/stdc++.h ...
- Codeforces Beta Round #76 (Div. 2 Only)
Codeforces Beta Round #76 (Div. 2 Only) http://codeforces.com/contest/94 A #include<bits/stdc++.h ...
随机推荐
- react-native android app名字 app包名、图标和启动图片设置
1.设置名字 打开 android/app/src/main/res/values/strings.xml 如图,进行修改即可 2.设置图标,最简单可以直接替换,其他后在看 在上图中几个文件夹中都有一 ...
- CentOS 7.0安装配置Vsftp服务器步骤详解
安装Vsftp讲过最多的就是在centos6.x版本中了,这里小编看到有朋友写了一篇非常不错的CentOS 7.0安装配置Vsftp服务器教程,下面整理分享给各位. 一.配置防火墙,开启FTP服务器需 ...
- jsfl 生成flash 工具面板
利用flash组件的List做界面,先从flash中拖出List组件,然后删除.绑定Main类. package { import flash.display.Sprite; import flash ...
- (转载)Android下Affinities和Task
源文链接:http://appmem.com/archives/405 1.Activity和Task task就好像是能包含很多activity的栈. 默认情况下,一个activity启动另外一个a ...
- bash: export: “path” not a valid identifier [closed]
export SPARK_HOME=/usr/local/spark export PATH=$PATH:$SPARK_HOME/bin bash: export: “path” not a vali ...
- 1047B_Cover Points
B. Cover Points time limit per test 1 second memory limit per test 256 megabytes input standard inpu ...
- [Shell]Bash基本功能:多命令顺序执行与管道符
/*----------------------------------------------------------------------------------------------- @黑 ...
- 多线程数据库查询(ADO)
ADO多线程数据库查询通常会出现3个问题: 1.CoInitialize 没有调用(CoInitialize was not called):所以,在使用任何dbGo对象前,必须手 调用CoIniti ...
- BlurZoomGallery一个完美下拉进入大图模式
BlurZoomGallery一个完美的Gallery和view的事件处理,下拉放大的时候gallery不断的在添加高度,gallery效果在放大,实现下拉进入大图模式,view滑动事件和galler ...
- you-get
1.打开cmd,输入命令并执行 pip3 install you-get 2.输入命令,检测 You-Get 是否安装成功 you-get 3.开始下载吧 you-get [视频地址]you-get ...