题解见:http://ecustacm.cn/contest/11/announcements

A

#include<bits/stdc++.h>
#define rep(i,a,b) for(int i=a;i<=b;i++)
using namespace std;
const int maxn=;
int a[maxn],ans; char c[maxn];
int main()
{
int T,N,A,B,C,D,Ca=;
scanf("%d",&T);
while(T--){
scanf("%s",c+); N=strlen(c+);
A=B=C=D=;
rep(i,,N){
if(c[i]=='') A++;
if(c[i]=='') B++;
if(i<N&&c[i]==''&&c[i+]=='') C++;
if(i<N&&c[i]==''&&c[i+]=='') D++;
}
printf("Case %d: %d %d %d %d\n",++Ca,A,B,C,D);
}
return ;
}

B

#include<bits/stdc++.h>
#define rep(i,a,b) for(int i=a;i<=b;i++)
using namespace std;
const int maxn=;
char c[maxn];
int main()
{
int T,A,B,C,D,Ca=;
scanf("%d",&T);
while(T--){
scanf("%d%d%d%d",&A,&B,&C,&D);
printf("Case %d: ",++Ca);
if(A<C||A<D||B<C||B<D||abs(C-D)>) { puts("-1"); continue;}
if(B==){
rep(i,,A) putchar(''); puts("");
}
else if(A==){
rep(i,,B) putchar(''); puts("");
}
else if(C==D){
int ta=C+,tb=D;
if(A<ta||B<tb){
ta=C,tb=C+;
if(A<ta||B<tb){ puts("-1"); continue;}
putchar('');
rep(i,,C){
putchar('');
if(i==){
rep(j,,A-ta) putchar('');
}
if(i==C){
rep(j,,B-tb) putchar('');
}
putchar('');
}
puts("");
}
else {
rep(i,,A-ta) putchar('');
rep(i,,C) putchar(''),putchar('');
rep(i,,B-tb) putchar('');
putchar('');
puts("");
}
}
else if(C==D+){
int ta=C,tb=C;
if(A<ta||B<tb){ puts("-1"); continue;}
rep(i,,A-ta) putchar('');
rep(i,,C) putchar(''),putchar('');
rep(i,,B-tb) putchar('');
puts("");
}
else if(D==C+){
int ta=D,tb=D;
if(A<ta||B<tb){ puts("-1"); continue;}
//cout<<D<<" "<<A-ta<<" "<<B-tb<<endl;
rep(i,,D){
putchar('');
if(i==) {
rep(j,,A-ta) putchar('');
}
if(i==D) {
rep(j,,B-tb) putchar('');
}
putchar('');
}
puts("");
}
}
return ;
}

C

#include<bits/stdc++.h>
#define rep(i,a,b) for(int i=a;i<=b;i++)
using namespace std;
const int maxn=;
char c[maxn];
struct SAM
{
int ch[maxn][],fa[maxn],maxlen[maxn],cnt,last;
void init()
{
cnt=; last=; memset(ch[],,sizeof(ch[]));
}
void add(int x)
{
int np=++cnt,p=last;
last=np; maxlen[cnt]=maxlen[p]+;
memset(ch[np],,sizeof(ch[np]));
while(p&&!ch[p][x])ch[p][x]=np,p=fa[p];
if(!p) fa[np]=;
else {
int q=ch[p][x];
if(maxlen[q]==maxlen[p]+) fa[np]=q;
else {
int nq=++cnt; maxlen[nq]=maxlen[p]+;
memcpy(ch[nq],ch[q],sizeof(ch[q]));
fa[nq]=fa[q], fa[q]=fa[np]=nq;
while(p&&ch[p][x]==q) ch[p][x]=nq,p=fa[p];
}
}
}
}S;
int q[maxn],pos[maxn],pre[maxn],head;
int fcy,tail,ans[maxn];
int main()
{
int T,N,Ca=;
scanf("%d",&T);
while(T--){
scanf("%d%s",&N,c+);
S.init();
rep(i,,N) S.add(c[i]==''?:);
head=tail=;
q[++head]=; pos[head]=; pre[head]=;
while(tail<head){
int u=q[++tail];
q[++head]=S.ch[u][]; pos[head]=; pre[head]=tail;
if(!S.ch[u][]) {
fcy=head;
break;
}
q[++head]=S.ch[u][]; pos[head]=; pre[head]=tail;
if(!S.ch[u][]) {
fcy=head;
break;
}
}
int tot=;
while(fcy>){
ans[++tot]=pos[fcy];
fcy=pre[fcy];
}
printf("Case %d: %d\n",++Ca,tot);
for(int i=tot;i>=;i--)
putchar(ans[i]?'':'');
puts("");
}
return ;
}

D

#include<bits/stdc++.h>
#define rep(i,a,b) for(int i=a;i<=b;i++)
using namespace std;
const int maxn=;
int main()
{
int T,N,M,Ca=,ans;
scanf("%d",&T);
while(T--){
scanf("%d%d",&N,&M);
ans=max(N,M);
ans=max(ans,(N*M+)/);
if(N>M) swap(N,M);
if(N==) {
int res=M/*;
if(M%==) res+=;
if(M%>=) res+=;
ans=max(ans,res);
}
printf("Case %d: %d\n",++Ca,ans);
}
return ;
}

E

#include<bits/stdc++.h>
#define rep(i,a,b) for(int i=a;i<=b;i++)
using namespace std;
const int maxn=;
bitset<maxn>A,B;
int main()
{
int N,L,R,x,ans; A[]=;
scanf("%d",&N);
rep(i,,N){
scanf("%d%d",&L,&R);
B.reset();
rep(j,L,R){
x=j*j;
B|=(A<<x);
}
A=B;
}
ans=A.count();
printf("%d\n",ans);
return ;
}

F

#include<bits/stdc++.h>
#define rep(i,w,v) for(int i=w;i<=v;i++)
using namespace std;
const int maxn=;
const int maxm=;
int N,M,K,ans,a[maxn][maxn];
int Laxt[maxn],Next[maxm],To[maxm],cnt;
int linke[maxn],vis[maxn];
void add(int u,int v)
{
Next[++cnt]=Laxt[u]; Laxt[u]=cnt;To[cnt]=v;
}
bool find(int u)
{
for(int i=Laxt[u];i;i=Next[i]){
int v=To[i];if(vis[v]) continue;
vis[v]=;
if(!linke[v]||find(linke[v])){
linke[v]=u;
return true;
}
}
return false;
}
bool check(int Mid)
{
int res=; cnt=;
memset(Laxt,,sizeof(Laxt));
memset(linke,,sizeof(linke));
rep(i,,N) rep(j,,M)
if(a[i][j]<=Mid) add(i,j);
rep(i,,N){
memset(vis,,sizeof(vis));
if(find(i)) res++;
}
return res>=K;
}
int main()
{
scanf("%d%d%d",&N,&M,&K); K=N+-K;
rep(i,,N) rep(j,,M) scanf("%d",&a[i][j]);
int L=,R=;
while(L<=R){
int Mid=(L+R)>>;
if(check(Mid)) ans=Mid,R=Mid-;
else L=Mid+;
}
printf("%d\n",ans);
return ;
}

ECUST Div2 训练赛3 (只有代码)的更多相关文章

  1. 10.0.0.55_12-16训练赛部分writeup

    0x1 - MISC MISC100 一张帅行的照片 目测是图片隐写,但是binwalk并没有出来,应该是对文件头进行了修改 010editor查看一下,发现在jpg文件尾之后还有大量的数据 而且在灰 ...

  2. Contest1592 - 2018-2019赛季多校联合新生训练赛第二场(部分题解)

    Contest1592 - 2018-2019赛季多校联合新生训练赛第二场 D 10248 修建高楼(模拟优化) H 10252 组装玩具(贪心+二分) D 传送门 题干 题目描述 C 市有一条东西走 ...

  3. Contest1585 - 2018-2019赛季多校联合新生训练赛第一场(部分题解)

    Contest1585 - 2018-2019赛季多校联合新生训练赛第一场 C 10187 查找特定的合数 D 10188 传话游戏 H 10192 扫雷游戏 C 传送门 题干: 题目描述 自然数中除 ...

  4. 7.30 正睿暑期集训营 A班训练赛

    目录 2018.7.30 正睿暑期集训营 A班训练赛 T1 A.蔡老板分果子(Hash) T2 B.蔡老板送外卖(并查集 最小生成树) T3 C.蔡老板学数学(DP NTT) 考试代码 T2 T3 2 ...

  5. HDU6578 2019HDU多校训练赛第一场 1001 (dp)

    HDU6578 2019HDU多校训练赛第一场 1001 (dp) 传送门:http://acm.hdu.edu.cn/showproblem.php?pid=6578 题意: 你有n个空需要去填,有 ...

  6. HDU6579 2019HDU多校训练赛第一场1002 (线性基)

    HDU6579 2019HDU多校训练赛第一场1002 (线性基) 传送门:http://acm.hdu.edu.cn/showproblem.php?pid=6579 题意: 两种操作 1.在序列末 ...

  7. Liblinear and Libsvm-rank训练数据的bash代码

    Liblinear and Libsvm-rank训练数据的bash代码: for j in "amazon_mp3" "video_surveillance" ...

  8. 2018天梯赛第一次训练题解和ac代码

    随着评讲的进行代码和题解会逐步放上来 2018天梯赛第一次训练 1001 : 进制转换 Time Limit(Common/Java):1000MS/10000MS     Memory Limit: ...

  9. 2018省赛赛第一次训练题解和ac代码

    第一次就去拉了点思维很神奇的CF题目 2018省赛赛第一次训练 # Origin Title     A CodeForces 607A Chain Reaction     B CodeForces ...

随机推荐

  1. Python3+ssl实现加密通信

    一.说明 1. python标准库ssl可实现加密通信 2. ssl库底层使用openssl,做了面向对像化改造和简化,但还是可以明显看出openssl的痕迹 3. 本文先给出python实现的soc ...

  2. dvwa安装、配置、使用教程(Linux)

    一.搭建LAMP环境 首先搭建好LAMP环境,如没配好参见“Linux+Apache+MySQL+PHP配置教程” 或者使用官方推荐的XAMPP:https://www.apachefriends.o ...

  3. 运维相关 docker

  4. 转:Java工程师成神之路~(2018修订版)

    转: http://www.hollischuang.com/archives/489 阿里大牛珍藏架构资料,点击链接免费获取 针对本文,博主最近在写<成神之路系列文章> ,分章分节介绍所 ...

  5. pickle file in matlab

    Load pickle files in Matlab Posted on June 12, 2013 by xcorr   http://xcorr.net/2013/06/12/load-pick ...

  6. POJ 1088 滑雪(记忆化搜索+dp)

    POJ 1088 滑雪 Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 107319   Accepted: 40893 De ...

  7. 最佳加法表达式(dp)

    题目描述: 有一个由1..9组成的数字串.问如果将m个加 号插入到这个数字串中,在各种可能形成的 表达式中,值最小的那个表达式的值是多少 (本题只能用于整数) 解题思路: 假定数字串长度是n,添完加号 ...

  8. axios 参数为payload的解决方法

    1. 添加头部headers headers: { 'Content-Type': 'application/x-www-form-urlencoded', }, axios.post(url, {a ...

  9. int(a) 和 (int &) a 及 数据存储地址的探究

    做题做到一个很有意思的题 void main() { float a = 1; cout << boolalpha << ((int)a == (int &)a); f ...

  10. 我眼中的Linux系统和红帽RHCE认证

    牛顿曾经说过“我不知道在别人看来,我是什么样的人:但在我自己看来,我不过就象是一个在海滨玩耍的小孩,为不时发现比寻常更为光滑的一块卵石或比寻常更为美丽的一片贝壳而沾沾自喜,而对于展现在我面前的浩瀚的真 ...