题解见: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. jQuery滚屏插件XSwitch.js

    1.需要有基本的HTML结构 <div style="margin-top: 124px;" id="container" data-XSwitch> ...

  2. Linux/AIX/Windows端口和进程互查

    经常我们需要通过端口号查是哪个进程占用,或想查看某个进程占用了哪些端口. 1.1Linux上通过端口查找进程 比如我们想知道当前系统中80端口是哪个进程所占用 netstat -anp| |more ...

  3. Dom方法,解析XML文件

    Dom方法,解析XML文件的基本操作 package com.demo.xml.jaxp; import java.io.IOException; import javax.xml.parsers.D ...

  4. html页面标题增加图标方法

    有些网站的网页标题部分有图标,很带感.方法很简单: 在<head></head>部分增加下列一行代码即可. <link rel="shortcut icon&q ...

  5. mySQL 分组查询,根据分组的字段,取最小值

    今天看到别人问的问题,给别人写了一条sql! CREATE TEMPORARY TABLE tmp_table ( id INTEGER not NULL, uname VARCHAR(10) NOT ...

  6. 网页设置下载apk

     APK文件其实是zip格式,但后缀名被修改为apk,通过UnZip解压后,可以看到Dex文件,Dex是Dalvik VM executes的全称,即Android Dalvik执行程序,并非Ja ...

  7. 将自己的域名解析跳转到博客主页(GitHub中的gitpage跳转)

    最近突然迷上了博客,突然又突发奇想,将自己几个月前买的现在限制的域名拿来跳转到自己的csdn博客.经过一番研究,总结---- 把自己的购买的域名(比如我买的circleyuan.top)跳转到CSDN ...

  8. 深入理解java虚拟机---java虚拟机内存管理(七)

    本地方法栈.java堆.方法区 本地方法栈在HotSpot版本内与java虚拟机栈是合二为一的.不单独区分本地方法栈.但是java虚拟机中是有这样一块区域的. 作用: 1.本地方法栈为虚拟机栈执行ja ...

  9. ThreadPoolExcutor

    先保存一个链接,后续更新 JAVA进阶----ThreadPoolExecutor机制 ExecutorService生命周期 理解ThreadPoolExecutor源码(一)线程池的corePoo ...

  10. jsch上传文件到服务器

    需求就是上传文件到服务器,服务器的存储地址由程序决定然后可以自动创建. 使用第三方:jsch JSch 是SSH2的一个纯Java实现.它允许你连接到一个sshd 服务器,使用端口转发,X11转发,文 ...