Codeforces Round #277.5 (Div. 2) ABCDF
http://codeforces.com/contest/489

# | Name | ||
---|---|---|---|
A |
standard input/output
1 s, 256 MB |
![]() ![]() |
![]() |
B |
standard input/output
1 s, 256 MB |
![]() ![]() |
![]() |
C |
standard input/output
1 s, 256 MB |
![]() ![]() |
![]() |
D |
standard input/output
1 s, 256 MB |
![]() ![]() |
![]() |
E |
standard input/output
1 s, 256 MB |
![]() ![]() |
![]() |
F |
standard input/output
1 s, 256 MB |
![]() ![]() |
![]() |
ABCD都是水题,F题有点碉,是个记忆化搜索/DP。
代码:
A:
//#pragma comment(linker, "/STACK:102400000,102400000")
#include<cstdio>
#include<cmath>
#include<iostream>
#include<cstring>
#include<algorithm>
#include<cmath>
#include<map>
#include<set>
#include<stack>
#include<queue>
using namespace std;
#define mz(array) memset(array, 0, sizeof(array))
#define mf1(array) memset(array, -1, sizeof(array))
#define minf(array) memset(array, 0x3f, sizeof(array))
#define REP(i,n) for(i=0;i<(n);i++)
#define FOR(i,x,n) for(i=(x);i<=(n);i++)
#define RD(x) scanf("%d",&x)
#define RD2(x,y) scanf("%d%d",&x,&y)
#define RD3(x,y,z) scanf("%d%d%d",&x,&y,&z)
#define WN(x) printf("%d\n",x);
#define RE freopen("D.in","r",stdin)
#define WE freopen("huzhi.txt","w",stdout)
#define mp make_pair
#define pb push_back
#define pf push_front
#define ppf pop_front
#define ppb pop_back
typedef long long ll;
typedef unsigned long long ull; const double pi=acos(-1.0);
const double eps=1e-; const int maxn=; int n; int ans;
int a[maxn];
int ax[maxn],ay[maxn]; ll farm(){
int i,j,k;
ll re=;
ans=;
FOR(i,,n-){
k=i;
FOR(j,i+,n-){
if(a[j]<a[k]){
k=j;
}
}
if(k!=i){
ax[ans]=i;
ay[ans]=k;
ans++;
swap(a[k],a[i]);
}
}
return re;
} int main(){
int i;
scanf("%d",&n);
REP(i,n)RD(a[i]);
farm();
WN(ans);
REP(i,ans){
printf("%d %d\n",ax[i],ay[i]);
}
return ;
}
B:
//#pragma comment(linker, "/STACK:102400000,102400000")
#include<cstdio>
#include<cmath>
#include<iostream>
#include<cstring>
#include<algorithm>
#include<cmath>
#include<map>
#include<set>
#include<stack>
#include<queue>
using namespace std;
#define mz(array) memset(array, 0, sizeof(array))
#define mf1(array) memset(array, -1, sizeof(array))
#define minf(array) memset(array, 0x3f, sizeof(array))
#define REP(i,n) for(i=0;i<(n);i++)
#define FOR(i,x,n) for(i=(x);i<=(n);i++)
#define RD(x) scanf("%d",&x)
#define RD2(x,y) scanf("%d%d",&x,&y)
#define RD3(x,y,z) scanf("%d%d%d",&x,&y,&z)
#define WN(x) printf("%d\n",x);
#define RE freopen("D.in","r",stdin)
#define WE freopen("huzhi.txt","w",stdout)
#define mp make_pair
#define pb push_back
#define pf push_front
#define ppf pop_front
#define ppb pop_back
typedef long long ll;
typedef unsigned long long ull; const double pi=acos(-1.0);
const double eps=1e-; const int maxn=;
const int maxm=; int n,m; //struct Edge{
// int v,next;
//}e[maxm];
//int head[maxn],en;
//
//inline void add(const int &x,const int &y){
// e[en].v=y;
// e[en].next=head[x];
// head[x]=en++;
//} int a[maxn],b[maxn]; int farm(){
sort(a,a+n);
sort(b,b+m);
int i,j;
j=;
int ans=;
REP(i,n){
while(j<m && b[j]<a[i]-)j++;
if(j==m)break;
if(abs(a[i]-b[j])<=){
j++;
ans++;
}
}
return ans;
} int main(){
int i;
RD(n);
REP(i,n)RD(a[i]);
RD(m);
REP(i,m)RD(b[i]);
WN(farm());
return ;
}
C:
//#pragma comment(linker, "/STACK:102400000,102400000")
#include<cstdio>
#include<cmath>
#include<iostream>
#include<cstring>
#include<algorithm>
#include<cmath>
#include<map>
#include<set>
#include<stack>
#include<queue>
using namespace std;
#define mz(array) memset(array, 0, sizeof(array))
#define mf1(array) memset(array, -1, sizeof(array))
#define minf(array) memset(array, 0x3f, sizeof(array))
#define REP(i,n) for(i=0;i<(n);i++)
#define FOR(i,x,n) for(i=(x);i<=(n);i++)
#define FORD(i,x,y) for(i=(x);i>=(y);i--)
#define RD(x) scanf("%d",&x)
#define RD2(x,y) scanf("%d%d",&x,&y)
#define RD3(x,y,z) scanf("%d%d%d",&x,&y,&z)
#define WN(x) printf("%d\n",x);
#define RE freopen("D.in","r",stdin)
#define WE freopen("huzhi.txt","w",stdout)
#define mp make_pair
#define pb push_back
#define pf push_front
#define ppf pop_front
#define ppb pop_back
typedef long long ll;
typedef unsigned long long ull; const double pi=acos(-1.0);
const double eps=1e-; const int maxn=;
const int maxm=; int m,s; //struct Edge{
// int v,next;
//}e[maxm];
//int head[maxn],en;
//
//inline void add(const int &x,const int &y){
// e[en].v=y;
// e[en].next=head[x];
// head[x]=en++;
//} char s1[],s2[]; bool farm(){
if(m> && s==)return ;
if(s > m*)return ;
if(m== && s==){
strcpy(s1,"");
strcpy(s2,"");
return ;
}
int t=s;
s1[]='';
t--;
int i;
FORD(i,m-,){
if(t){
int q=min(,t);
s1[i]=''+q;
t-=q;
}else s1[i]='';
}
if(t)s1[]+=t; t=s;
FOR(i,,m-){
if(t){
int q=min(,t);
s2[i]=''+q;
t-=q;
}else s2[i]='';
}
return ;
} int main(){
RD2(m,s);
if(farm())
printf("%s %s\n",s1,s2);
else puts("-1 -1");
return ;
}
D:
//#pragma comment(linker, "/STACK:102400000,102400000")
#include<cstdio>
#include<cmath>
#include<iostream>
#include<cstring>
#include<algorithm>
#include<cmath>
#include<map>
#include<set>
#include<stack>
#include<queue>
using namespace std;
#define mz(array) memset(array, 0, sizeof(array))
#define mf1(array) memset(array, -1, sizeof(array))
#define minf(array) memset(array, 0x3f, sizeof(array))
#define REP(i,n) for(i=0;i<(n);i++)
#define FOR(i,x,n) for(i=(x);i<=(n);i++)
#define RD(x) scanf("%d",&x)
#define RD2(x,y) scanf("%d%d",&x,&y)
#define RD3(x,y,z) scanf("%d%d%d",&x,&y,&z)
#define WN(x) printf("%d\n",x);
#define RE freopen("D.in","r",stdin)
#define WE freopen("huzhi.txt","w",stdout)
#define mp make_pair
#define pb push_back
#define pf push_front
#define ppf pop_front
#define ppb pop_back
typedef long long ll;
typedef unsigned long long ull; const double pi=acos(-1.0);
const double eps=1e-; const int maxn=;
const int maxm=; int n,m; struct Edge{
int v,next;
}e[maxm];
int head[maxn],en; inline void add(const int &x,const int &y){
e[en].v=y;
e[en].next=head[x];
head[x]=en++;
} ll ans; int a[maxn][maxn];
int gf; void dfs(int x,int y){
if(y==){
a[gf][x]++;
return;
}
int i;
for(i=head[x]; i!=-; i=e[i].next){
if(e[i].v!=gf)dfs(e[i].v, y-);
}
} void farm(){
int i,j;
ans=;
mz(a);
FOR(i,,n){
gf=i;
dfs(i,);
}
FOR(i,,n){
FOR(j,,n){
if(i!=j){
if(a[i][j]>=){
ans+= a[i][j]*(a[i][j]-)/ ;
}
}
}
}
} int main(){
int i,j;
int x,y;
RD2(n,m);
en=;
mf1(head);
REP(i,m){
RD2(x,y);
add(x,y);
}
farm();
printf("%I64d",ans);
return ;
}
F:
//#pragma comment(linker, "/STACK:102400000,102400000")
#include<cstdio>
#include<cmath>
#include<iostream>
#include<cstring>
#include<algorithm>
#include<cmath>
#include<map>
#include<set>
#include<stack>
#include<queue>
using namespace std;
#define mz(array) memset(array, 0, sizeof(array))
#define mf1(array) memset(array, -1, sizeof(array))
#define minf(array) memset(array, 0x3f, sizeof(array))
#define REP(i,n) for(i=0;i<(n);i++)
#define FOR(i,x,n) for(i=(x);i<=(n);i++)
#define RD(x) scanf("%d",&x)
#define RD2(x,y) scanf("%d%d",&x,&y)
#define RD3(x,y,z) scanf("%d%d%d",&x,&y,&z)
#define WN(x) printf("%d\n",x);
#define RE freopen("D.in","r",stdin)
#define WE freopen("huzhi.txt","w",stdout)
#define mp make_pair
#define pb push_back
#define pf push_front
#define ppf pop_front
#define ppb pop_back
typedef long long ll;
typedef unsigned long long ull; const double pi=acos(-1.0);
const double eps=1e-; const int maxn=; int n,m,mod; int a[maxn][maxn]; int r[maxn],c[maxn]; ll f[maxn][maxn]; inline ll gank(const int &w1, const int &w0){
//printf("%d,%d\n",w1,w0);
if(f[w1][w0] != -)return f[w1][w0];
ll re=;
if(w0>){
re+=w0*(w0-)/ * gank(w1+,w0-);
re%=mod;
}
if(w0> && w1>){
re+=w0*w1 * gank(w1,w0-);
re%=mod;
}
if(w1>){
re+=w1*(w1-)/ * gank(w1-,w0);
re%=mod;
}
f[w1][w0]=re;
return re;
} ll farm(){
int i,j,k;
// REP(i,n){
// REP(j,n)printf("%d ",a[i][j]);
// puts("");
// }
mz(r);
mz(c);
REP(i,m)REP(j,n){
if(a[i][j]){
r[i]++;
c[j]++;
}
}
REP(i,n){
if(r[i]> || c[i]>)return ;
}
REP(i,m) if(r[i]!=)return ;
int ww[]={};
REP(i,n){
ww[c[i]]++;
}
ll ans=;
mf1(f);
f[][]=;
ans = gank(ww[], ww[]);
return ans;
} int main(){
char c;
int i,j;
RD3(n,m,mod);
mf1(a);
REP(i,m){
REP(j,n){
do{c=getchar();}while(c!='' && c!='');
a[i][j] = c-'';
}
}
printf("%I64d\n",farm());
return ;
}
Codeforces Round #277.5 (Div. 2) ABCDF的更多相关文章
- Codeforces Round #277.5 (Div. 2)
题目链接:http://codeforces.com/contest/489 A:SwapSort In this problem your goal is to sort an array cons ...
- Codeforces Round #277.5 (Div. 2) --E. Hiking (01分数规划)
http://codeforces.com/contest/489/problem/E E. Hiking time limit per test 1 second memory limit per ...
- Codeforces Round #277.5 (Div. 2)-D. Unbearable Controversy of Being
http://codeforces.com/problemset/problem/489/D D. Unbearable Controversy of Being time limit per tes ...
- Codeforces Round #277.5 (Div. 2)-C. Given Length and Sum of Digits...
http://codeforces.com/problemset/problem/489/C C. Given Length and Sum of Digits... time limit per t ...
- Codeforces Round #277.5 (Div. 2)-B. BerSU Ball
http://codeforces.com/problemset/problem/489/B B. BerSU Ball time limit per test 1 second memory lim ...
- Codeforces Round #277.5 (Div. 2)-A. SwapSort
http://codeforces.com/problemset/problem/489/A A. SwapSort time limit per test 1 second memory limit ...
- Codeforces Round #277.5 (Div. 2) A,B,C,D,E,F题解
转载请注明出处: http://www.cnblogs.com/fraud/ ——by fraud A. SwapSort time limit per test 1 seco ...
- Codeforces Round #277.5 (Div. 2)-D
题意:求该死的菱形数目.直接枚举两端的点.平均意义每一个点连接20条边,用邻接表暴力计算中间节点数目,那么中间节点任选两个与两端可组成的菱形数目有r*(r-1)/2. 代码: #include< ...
- Codeforces Round #277.5 (Div. 2)B——BerSU Ball
B. BerSU Ball time limit per test 1 second memory limit per test 256 megabytes input standard input ...
随机推荐
- CentOS 6.5下Redis安装记录
Redis简介: Redis是一个开源的使用ANSI C语言编写.支持网络.可基于内存亦可持久化的日志型.Key-Value数据库,并提供多种语言的API.从2010年3月15日起,Redis的开发工 ...
- centos 6.6 使用tomcat6部署solr5.3.1
Solr现在是一个独立的服务器. 从Solr5.0开始,Solr不再发布为在任何Servlet容器中部署的“war”Web应用程序包(Web Application Archive).网上关于solr ...
- 3. Python 简介
3. Python 简介 下面的例子中,输入和输出分别由大于号和句号提示符 ( >>> 和 ... ) 标注:如果想重现这些例子,就要在解释器的提示符后,输入 (提示符后面的) 那些 ...
- EF with (LocalDb)V11.0
EF虽说对LocalDb支持的不错,但LocalDb有自身的缺陷(不想sqlite那样数据库文件可以像普通文件一样使用). LocalDb在一个计算机上会对数据库有唯一性约束,要求本机的localdb ...
- POJ 1273 Drainage Ditches题解——S.B.S.
Drainage Ditches Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 67823 Accepted: 2620 ...
- video标签播放视频
<!doctype html> <html> <head> <meta charset=utf-8> <title>测试</title ...
- 嵌入式Linux驱动学习之路(十五)按键驱动-定时器防抖
在之前的定时器驱动程序中,我们发现在连续按下按键的时候,正常情况下应该是一次按下对应一次松开.而程序有时候会显示是两次按下,一次松开.这个问题是因为在按下的时候,因为是机械按键,所以电压信号会产生一定 ...
- JAVA object
1.toString 把对象变成字符串 对于一个引用型变量toString写不写都是一样的 2.equals() 比较两个对象的引用是否一样. 3. public class EqualsTest ...
- iOS重一些常用的代理模式
(一)代理模式 应用场景:当一个类的某些功能需要由别的类来实现,但是又不确定具体会是哪个类实现.优势:解耦合敏捷原则:开放-封闭原则实例:tableview的 数据源delegate,通过和proto ...
- 快速掌握iOS API的一个小技巧
快速掌握iOS API的一个小技巧 周银辉 iOS SDK和Developer Library中提供了各个类以及函数的帮助文档,这很棒,但要想了解整个库的大体结构(比如UIKit下有哪些类,他们的继承 ...