NOIP2015其余几道题
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其余几道题的更多相关文章
- UOJ149 【NOIP2015】子串
本文作者:ljh2000作者博客:http://www.cnblogs.com/ljh2000-jump/转载请注明出处,侵权必究,保留最终解释权! [问题描述]有两个仅包含小写英文字母的字符串 A ...
- 4560 NOIP2015 D2T2 子串
4560 NOIP2015 D2T2 子串 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 黄金 Gold 题解 查看运行结果 题目描述 Description 有两 ...
- 【NOIP2015】运输计划
[NOIP2015]运输计划 标签: 树上差分 LCA 二分答案 Description 公元 2044 年,人类进入了宇宙纪元. L 国有 n 个星球,还有 n-1 条双向航道,每条航道建立在两个星 ...
- 洛谷 P2678 & [NOIP2015提高组] 跳石头
题目链接 https://www.luogu.org/problemnew/show/P2678 题目背景 一年一度的“跳石头”比赛又要开始了! 题目描述 这项比赛将在一条笔直的河道中进行,河道中分布 ...
- NOIP2015&2016普及组解题报告
NOIP2015普及组题目下载 NOIP2016普及组题目下载 NOIP2015普及组题目: NOIP2018RP++ NOIP2016普及组题目 NOIP2018RP++ T1 金币\((coin. ...
- NOIP2015 T4 推销员 贪心+堆优化
前几天在学堆,这个数据结构貌似挺简单的,但是我看了很久啊QAQ... 今天算是搞懂了吧...于是想到了这道题...(当初悄悄咪咪看题解记得一点) 点我看题 放洛谷的题... 题意的话,大概就是有n个房 ...
- 2106. [NOIP2015] 斗地主
2106. [NOIP2015] 斗地主 ★★★☆ 输入文件:landlords.in 输出文件:landlords.out 简单对比 时间限制:2 s 内存限制:1025 M ...
- NOIP2015斗地主题解 7.30考试
问题 B: NOIP2015 斗地主 时间限制: 3 Sec 内存限制: 1024 MB 题目描述 牛牛最近迷上了一种叫斗地主的扑克游戏.斗地主是一种使用黑桃.红心.梅花.方片的A到K加上大小王的共 ...
- NOIP2015普及组总结
NOIP2015普及组总结 这次考试总体感觉不错,不过觉得时间有点紧,在最后30分钟才打完. 第一题(金币coin):大大的W!爆搜O(N),一分钟打完: 第二题(扫雷游戏mine):同上: 第三题( ...
随机推荐
- nova-api源码分析(APP的调用)
调用APIRouter的 __call__函数 nova/wsgi.py class Router(object): def __init__(self, mapper): self.map = ma ...
- angular.module()参数问题
var app = angular.module('myApp', []); 第二个参数是依赖的模块,因为这里不需要依赖其它模块,因此为空,但是[]不能省略.
- Webx示例-PetStore分析1
1. 下载源码 2. 启动容器,加载组件--WebxContextLoaderListener WebxContextLoaderListener继承自org.springframework.web. ...
- li分两列显示
只要控制了li的宽度,利用浮动就能实现<style type="text/css"> .my ul { width: 210px; } .my li { width: ...
- Web性能优化系列(1):Web性能优化分析
本文由 伯乐在线 - 鸭梨山大 翻译,sunbiaobiao 校稿.未经许可,禁止转载!英文出处:gokulkrishh.github.io.欢迎加入翻译小组. 如果你的网站在1000ms内加载完成, ...
- HTML5自定义data属性
可能大家在使用jquery mobile时,经常会看到data-role.data-theme等的使用,比如:通过如下代码即可实现页眉的效果: [html] <div data-role=&qu ...
- ocky勒索软件恶意样本分析1
locky勒索软件恶意样本分析1 1 locky勒索软件构成概述 前些时期爆发的Locky勒索软件病毒这边也拿到了一个样本,简要做如下分析.样本主要包含三个程序: A xx.js文件:Jscript脚 ...
- vim助手
移动光标 hjkl 2w 向前移动两个单词 3e 向前移动到第 3 个单词的末尾 0 移动到行首 $ 当前行的末尾 gg 文件第一行 G 文件最后一行 行号+G 指定行 <ctrl>+o ...
- 解读Android LOG机制的实现【转】
转自:http://www.cnblogs.com/hoys/archive/2011/09/30/2196199.html http://armboard.taobao.com/ Android提供 ...
- BCTF2017 BabyUse
BCTF2017 BabyUse 问题 问题在于drop函数中在释放块之后没有清空bss_gun_list中的指针. 一般因为存在对bss_gun_flag的验证,所以不会出现什么问题,但是在use功 ...