T1:

#include<cstdio>
#include<cstring>
#include<algorithm>
#include<cmath>
#include<cctype>
#include<cstdlib>
#define rep(i,s,t) for(int i=s;i<=t;i++)
#define dwn(i,s,t) for(int i=s;i>=t;i--)
using namespace std;
inline int read() {
int x=,f=;char c=getchar();
for(;!isdigit(c);c=getchar()) if(c=='-') f=-;
for(;isdigit(c);c=getchar()) x=x*+c-'';
return x*f;
}
int A[][];
int x[],y[];
void set(int k,int r,int c) {
A[r][c]=k;x[k]=r;y[k]=c;
}
int main() {
int n=read();
set(,,n/+);
rep(k,,n*n) {
if(x[k-]==&&y[k-]!=n) set(k,n,y[k-]+);
else if(y[k-]==n&&x[k-]!=) set(k,x[k-]-,);
else if(x[k-]==&&y[k-]==n) set(k,x[k-]+,y[k-]);
else if(!A[x[k-]-][y[k-]+]) set(k,x[k-]-,y[k-]+);
else set(k,x[k-]+,y[k-]);
}
rep(i,,n) {
printf("%d",A[i][]);
rep(j,,n) printf(" %d",A[i][j]);
putchar('\n');
}
return ;
}

T2:

#include<cstdio>
#include<cstring>
#include<algorithm>
#include<cmath>
#include<cctype>
#include<cstdlib>
#define rep(i,s,t) for(int i=s;i<=t;i++)
#define dwn(i,s,t) for(int i=s;i>=t;i--)
using namespace std;
inline int read() {
int x=,f=;char c=getchar();
for(;!isdigit(c);c=getchar()) if(c=='-') f=-;
for(;isdigit(c);c=getchar()) x=x*+c-'';
return x*f;
}
const int maxn=;
int n,ans,to[maxn],vis[maxn],dep[maxn];
void dfs(int x) {
vis[x]=-;
if(vis[to[x]]<) ans=min(ans,dep[x]-dep[to[x]]+);
else if(!vis[to[x]]) dep[to[x]]=dep[x]+,dfs(to[x]);
vis[x]=;
}
int main() {
n=read();ans=n+;
rep(i,,n) to[i]=read();
rep(i,,n) if(!vis[i]) dfs(i);
printf("%d\n",ans);
return ;
}

T3:

#include<cstdio>
#include<cstring>
#include<algorithm>
#include<cmath>
#include<cctype>
#include<cstdlib>
#define rep(i,s,t) for(int i=s;i<=t;i++)
#define dwn(i,s,t) for(int i=s;i>=t;i--)
using namespace std;
inline int read() {
int x=,f=;char c=getchar();
for(;!isdigit(c);c=getchar()) if(c=='-') f=-;
for(;isdigit(c);c=getchar()) x=x*+c-'';
return x*f;
}
int n,A[],t[],s[],f[<<],vis[<<];
int nowans,cur_clock;
int dp(int S,int c,int dep) {
if(dep>=nowans) return <<;
if(!c) return ;
int& ans=f[S];
if(vis[S]==cur_clock) return ans;
ans=c;vis[S]=cur_clock;
if(t[]>=&&t[]>=) {
int S2=S^(<<s[])^(<<s[]);
s[]++;t[]--;s[]++;t[]--;
ans=min(ans,dp(S2,c-,dep+)+);
s[]--;t[]++;s[]--;t[]++;
}
rep(i,,) if(t[i]) {
int S2=S,j=i;
for(;j<=;j++) if(t[j]<) break;
j--;if(j-i+>=) {
rep(k,i,j) S2^=<<s[k],s[k]++,t[k]--;
ans=min(ans,dp(S2,c-(j-i+),dep+)+);
rep(k,i,j) s[k]--,t[k]++;
}
}
rep(i,,) if(t[i]>=) {
int S2=S,j=i;
for(;j<=;j++) if(t[j]<) break;
j--;if(j-i+>=) {
rep(k,i,j) S2=S2^(<<s[k])^(<<s[k]+),s[k]+=,t[k]-=;
ans=min(ans,dp(S2,c-(j-i+)*,dep+)+);
rep(k,i,j) s[k]-=,t[k]+=;
}
}
rep(i,,) if(t[i]>=) {
int S2=S,j=i;
for(;j<=;j++) if(t[j]<) break;
j--;if(j-i+>=) {
rep(k,i,j) S2=S2^(<<s[k])^(<<s[k]+)^(<<s[k]+),s[k]+=,t[k]-=;
ans=min(ans,dp(S2,c-(j-i+)*,dep+)+);
rep(k,i,j) s[k]-=,t[k]+=;
}
}
rep(i,,) if(t[i]>=) {
int S2=(S^(<<s[i])^(<<s[i]+));
s[i]+=;t[i]-=;ans=min(ans,dp(S2,c-,dep+)+);t[i]+=;s[i]-=;
if(t[i]>=) {
int S2=(S^(<<s[i])^(<<s[i]+)^(<<s[i]+));
s[i]+=;t[i]-=;ans=min(ans,dp(S2,c-,dep+)+);t[i]+=;s[i]-=;
if(t[i]>=) {
S2=(S^(<<s[i])^(<<s[i]+)^(<<s[i]+)^(<<s[i]+));
s[i]+=;t[i]-=;ans=min(ans,dp(S2,c-,dep+)+);t[i]+=;s[i]-=;
rep(j,,) rep(k,,) {
int nt=t[i];
if(j==i||k==i) t[i]-=;
if(((t[j]>=&&t[k]>=)&&j!=k)||(j==k&&t[j]>=)) {
if(j==i||k==i) t[i]+=;
S2=S^(<<s[i])^(<<s[i]+)^(<<s[i]+)^(<<s[i]+);
s[i]+=;t[i]-=;
S2=S2^(<<s[j]);
s[j]+=;t[j]-=;
S2=S2^(<<s[k]);
s[k]+=;t[k]-=;
ans=min(ans,dp(S2,c-,dep+)+);
t[i]+=;s[i]-=;s[j]-=;t[j]+=;s[k]-=;t[k]+=;
}
t[i]=nt;
if(j==i||k==i) t[i]-=;
if(((t[j]>=&&t[k]>=)&&j!=k)||(j==k&&t[j]>=)) {
if(j==i||k==i) t[i]+=;
S2=S^(<<s[i])^(<<s[i]+)^(<<s[i]+)^(<<s[i]+);
s[i]+=;t[i]-=;
S2=S2^(<<s[j])^(<<s[j]+);
s[j]+=;t[j]-=;
S2=S2^(<<s[k])^(<<s[k]+);
s[k]+=;t[k]-=;
ans=min(ans,dp(S2,c-,dep+)+);
t[i]+=;s[i]-=;s[j]-=;t[j]+=;s[k]-=;t[k]+=;
}
t[i]=nt;
}
}
rep(j,,) {
if((t[j]>=&&j!=i)||(j==i&&t[j]>=)) {
S2=S^(<<s[i])^(<<s[i]+)^(<<s[i]+);
s[i]+=;t[i]-=;
S2=S2^(<<s[j]);s[j]++;t[j]--;
ans=min(ans,dp(S2,c-,dep+)+);
t[i]+=;s[i]-=;s[j]--;t[j]++;
}
if((t[j]>=&&j!=i)||(j==i&&t[j]>=)) {
S2=S^(<<s[i])^(<<s[i]+)^(<<s[i]+);
s[i]+=;t[i]-=;
S2=S2^(<<s[j])^(<<s[j]+);s[j]+=;t[j]-=;
ans=min(ans,dp(S2,c-,dep+)+);
t[i]+=;s[i]-=;s[j]-=;t[j]+=;
}
}
}
}
nowans=min(nowans,dep+ans);return ans;
}
int main() {
int T=read(),N=read();
while(T--) {
memset(t,,sizeof(t));
n=N;nowans=n+;cur_clock++;
rep(i,,n-) {
A[i]=read();int temp=read();
if(!A[i]) A[i]=+temp;
else if(A[i]==) A[i]=;
else if(A[i]==) A[i]=;
else A[i]-=;
t[A[i]]++;
}
s[]=;
rep(i,,) s[i]=s[i-]+t[i-];
dp((<<n)-,n,);
printf("%d\n",min(dp((<<n)-,n,),nowans));
}
return ;
}

T4:

#include<cstdio>
#include<cctype>
#include<cstring>
#include<algorithm>
#define rep(i,s,t) for(int i=s;i<=t;i++)
#define dwn(i,s,t) for(int i=s;i>=t;i--)
using namespace std;
inline int read() {
int x=,f=;char c=getchar();
for(;!isdigit(c);c=getchar()) if(c=='-') f=-;
for(;isdigit(c);c=getchar()) x=x*+c-'';
return x*f;
}
const int maxn=;
int L,n,m,A[maxn],is[maxn];
int check(int x) {
int c=,last=;
rep(i,,n) {
if(A[i]-A[last]<x) is[i]=;
else is[i]=,last=i;
}
rep(i,,n) if(L-A[i]<x) is[i]=;
rep(i,,n) if(!is[i]) c++;
return c<=m;
}
int main() {
L=read();n=read();m=read();
int l=,r=L+,mid;
rep(i,,n) A[i]=read();
while(l+<r) if(check(mid=l+r>>)) l=mid; else r=mid;
printf("%d\n",l);
return ;
}

T5:

#include<cstdio>
#include<cctype>
#include<cstring>
#include<algorithm>
#define rep(i,s,t) for(int i=s;i<=t;i++)
#define dwn(i,s,t) for(int i=s;i>=t;i--)
using namespace std;
inline int read() {
int x=,f=;char c=getchar();
for(;!isdigit(c);c=getchar()) if(c=='-') f=-;
for(;isdigit(c);c=getchar()) x=x*+c-'';
return x*f;
}
typedef unsigned int ll;
const int maxn=;
const int maxm=;
const int mod=;
char A[maxn],B[maxm];
int n,m,k,mx[maxn][maxm];
ll f[][maxn][maxm],g[][maxn][maxm];
int match(int x,int y) {
int ans=;
while(x>ans&&y>ans&&A[x-ans]==B[y-ans]) ans++;
return ans;
}
void update(ll& ans,ll v) {
ans=v;if(ans>mod) ans-=mod;
}
int main() {
n=read();m=read();k=read();
scanf("%s%s",A+,B+);
rep(i,,n) rep(j,,m) mx[i][j]=match(i,j);
int cur=;
rep(i,,n) rep(j,,n-i) g[][i+j][j]=;
rep(t,,k) {
cur^=;
memset(g[cur],,sizeof(g[cur]));
rep(gap,,n) rep(i,gap+t,min(n,m+gap)) {
int j=i-gap;
if(j-mx[i][j]-<) f[cur][i][j]=g[cur^][i-][j-];
else {
int temp=j-mx[i][j]-;if(temp<t-) temp=t-;
update(f[cur][i][j],g[cur^][i-][j-]-g[cur^][temp+gap][temp]+mod);
}
update(f[cur][i][j],f[cur][i][j]+f[cur][i-][j]);
if(j>t) update(g[cur][i][j],f[cur][i][j]+g[cur][i-][j-]);
else g[cur][i][j]=f[cur][i][j];
}
}
printf("%u\n",f[cur][n][m]);
return ;
}

NOIP2015其余几道题的更多相关文章

  1. UOJ149 【NOIP2015】子串

    本文作者:ljh2000作者博客:http://www.cnblogs.com/ljh2000-jump/转载请注明出处,侵权必究,保留最终解释权! [问题描述]有两个仅包含小写英文字母的字符串 A ...

  2. 4560 NOIP2015 D2T2 子串

    4560 NOIP2015 D2T2 子串  时间限制: 1 s  空间限制: 128000 KB  题目等级 : 黄金 Gold 题解  查看运行结果     题目描述 Description 有两 ...

  3. 【NOIP2015】运输计划

    [NOIP2015]运输计划 标签: 树上差分 LCA 二分答案 Description 公元 2044 年,人类进入了宇宙纪元. L 国有 n 个星球,还有 n-1 条双向航道,每条航道建立在两个星 ...

  4. 洛谷 P2678 & [NOIP2015提高组] 跳石头

    题目链接 https://www.luogu.org/problemnew/show/P2678 题目背景 一年一度的“跳石头”比赛又要开始了! 题目描述 这项比赛将在一条笔直的河道中进行,河道中分布 ...

  5. NOIP2015&2016普及组解题报告

    NOIP2015普及组题目下载 NOIP2016普及组题目下载 NOIP2015普及组题目: NOIP2018RP++ NOIP2016普及组题目 NOIP2018RP++ T1 金币\((coin. ...

  6. NOIP2015 T4 推销员 贪心+堆优化

    前几天在学堆,这个数据结构貌似挺简单的,但是我看了很久啊QAQ... 今天算是搞懂了吧...于是想到了这道题...(当初悄悄咪咪看题解记得一点) 点我看题 放洛谷的题... 题意的话,大概就是有n个房 ...

  7. 2106. [NOIP2015] 斗地主

        2106. [NOIP2015] 斗地主 ★★★☆   输入文件:landlords.in   输出文件:landlords.out   简单对比 时间限制:2 s   内存限制:1025 M ...

  8. NOIP2015斗地主题解 7.30考试

    问题 B: NOIP2015 斗地主 时间限制: 3 Sec  内存限制: 1024 MB 题目描述 牛牛最近迷上了一种叫斗地主的扑克游戏.斗地主是一种使用黑桃.红心.梅花.方片的A到K加上大小王的共 ...

  9. NOIP2015普及组总结

    NOIP2015普及组总结 这次考试总体感觉不错,不过觉得时间有点紧,在最后30分钟才打完. 第一题(金币coin):大大的W!爆搜O(N),一分钟打完: 第二题(扫雷游戏mine):同上: 第三题( ...

随机推荐

  1. css3 :nth-child()选择器的使用

    一.nth-child() 1. nth-child(n):父元素下的第n个子元素,n>0,索引从1开始.不区分子元素类型. 2. nth-child(odd):父元素下的奇数子元素,等同于:n ...

  2. bzoj千题计划255:bzoj3572: [Hnoi2014]世界树

    http://www.lydsy.com/JudgeOnline/problem.php?id=3572 明显需要构造虚树 点属于谁管理分三种情况: 1.属于虚树的点 2.在虚树上的边上的点 3.既不 ...

  3. Linux iptables常用命令的使用

    为什么会有本文 因为最近帮一个朋友布署一个上网梯子,他那边本来用的是v2ray,但是他想用ssr,但是安装配置ssr过程中出了很多问题,比如linux内核版本4.9有点老,不支持bbr加速.无法连接s ...

  4. js 获取格林尼治时间戳

    昨天在一论坛里看到有朋友问 js 如何获取格林尼治时间戳.不少朋友第一反应是 toGMTString ...确实可以得到格林尼治时间,但不是时间戳.虽然我也没有啥好的方法一步到位的获取,不过至少是获取 ...

  5. ie6下的line-height属性

    line-height这个属性是被ie6所支持的. 当是当一个父级元素内的子元素,包含了文字,且文字和img,input,label,span这些内联元素连接在一起的时候,你对父级元素设置line-h ...

  6. [原] eclipse 无法找到 run as junit

    碰见这个问题,折磨我好一下! 问题根源和解决方式 第一,保证有junit jar包,基本不会犯这错误: 第二,保证你这个类是Source可编译文件,要是这个类在普通文件夹下,工程是不会编译它的,也就找 ...

  7. 面积并+扫描线 覆盖的面积 HDU - 1255

    题目链接:https://cn.vjudge.net/problem/HDU-1255 题目大意:中文题目 具体思路:和上一篇的博客思路差不多,上一个题求的是面积,然后我们这个地方求的是啊覆盖两次及两 ...

  8. Ubuntu GNOME单击任务栏图标最小化设置

    在Ubuntu GNOME的发行版中,桌面使用的是GNOME,GNOME可以像Windows那样有一个底部任务栏,在Ubuntu GNOME中它称为 dash to dock,如下图: Windows ...

  9. eclipse安装阿里巴巴java开发规范插件

    阿里巴巴java开发规范插件 作为JAVA开发人员,始终没有一个明确的规范,何为好代码,何为坏代码,造成不同人的代码风格不同,接手别人代码后改造起来相当困难.前不久,阿里巴巴发布了<阿里巴巴Ja ...

  10. 微服务架构及Eureka简介

    一.微服务架构 服务提供者.服务消费者.服务发现组件这三者之间的关系: 各个微服务在启动时,将自己的网络地址等信息注册到服务发现组件中,服务发现组件会存储这些信息. 服务消费者可从服务发现组件查询服务 ...