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 ...
随机推荐
- Xshell 用鼠标选中一段文字后自动换行
现象: 使用Xshell连接远程服务器,一般选中都是鼠标选中,然后按快捷键 Ctrl+Insert复制,Shift+Insert粘贴. 可是当选中后松开鼠标,这时候仿佛在xshell里自动输了一个回车 ...
- 构建模式--Adapter模式(JAVA)
适配器模式: 适配器就相当于我们的转接头,比如手机充电器插头(小米和华为的手机充电器不能共用,这时候就可以给华为的充电器按一个转接头,就可以给小米手机充电). 同理,当一个类(充电器 HuaweiCh ...
- AJAX之发送GET请求
用jquery发送get请求 function AjaxSubmit1() { $.ajax({ //用jQuery发送 url: '/app04/ajax1/', type: 'GET', data ...
- h5 图片生成
createImg(store, data) { let timer = setTimeout(function (params) { let _canvas = document.querySele ...
- Netty - 3 内存分配
https://www.cnblogs.com/gaoxing/p/4253833.html netty的buffer引入了缓冲池.该缓冲池实现使用了jemalloc的思想 内存分配是面向虚拟内存的而 ...
- DNS协议工作过程;DNS的安全隐患
DNS协议工作过程 下面以域名为m.xyz.com的主机欲通过另一个主机的域名y.abc.com的IP地址为例,简述DNS协议过程. 主机m.xyz.com先向其本地服务器dns.xyz.com进 ...
- Unity资源Assetbundle
转 Unity资源打包之Assetbundle 本文原创版权归 csdn janeky 所有,转载请详细注明原创作者及出处,以示尊重! 作者:janeky 原文:http://blog.csdn.n ...
- 四,ViewSets和Routers
概述 在DRF中,允许在一个类中组合一组相关视图的逻辑,称为ViewSets.比如通过通用视图,可以定义列表视图.详情视图等等,但每个视图位于不同的类中,而通过ViewSets则可以将多个视图放在同一 ...
- 学习JS的心路历程-函式(一)
前几天有间单提到该如何声明函式及在Hositing中会发生什么事,但是函式的奥妙不仅于此. 身为一个使用JS的工程师,我们一定要熟悉函式到比恋人还熟! 这几天将会把函式逐一扒开跟各位一起探讨其中的奥妙 ...
- rect用法
//如果创建一个Rect对象rect(100, 50, 50, 100),那么rect会有以下几个功能: rect.area(); //返回rect的面积 5000 rect.size(); //返回 ...