NOIp #2009
T1 潜伏着 Label:字符串大水
#include<iostream>
#include<cstring>
#include<cstdio>
#include<algorithm>
#include<cstdlib>
#include<map>
using namespace std; map<char,char> m;
int used[];
string dst,key,con; void Error_lrb(){puts("Failed");exit();} int main(){
// freopen("spy.in","r",stdin);freopen("spy.out","w",stdout); cin>>con>>key>>dst;
for(int i=;i<key.size();i++){
if(!m.count(con[i])){
if(used[key[i]]) Error_lrb();
m[con[i]]=key[i],used[key[i]]=;
}
else if(m[con[i]]!=key[i]) Error_lrb();
} for(char i='A';i<='Z';i++) if(!m.count(i))Error_lrb(); for(int i=;i<dst.size();i++){
if(m.count(dst[i])) cout<<m[dst[i]];
else Error_lrb();
} puts("");
fclose(stdin);fclose(stdout);return ;
}
T2 Hankson 的趣味题
T3 最优贸易
#include<iostream>
#include<cstring>
#include<cstdio>
#include<algorithm>
#include<queue>
#include<cstdlib>
#include<vector>
#define INF 0x3f3f3f3f
#define ll long long
#define maxn 200005
using namespace std; int cmp[maxn];//强联通映射表
int c_lrb[maxn];//正常点
int cu[maxn];//强联通最高价
int cl[maxn];//强联通最低价
int white_list[maxn];
int N,M; vector<int> G_lrb[maxn],rG_lrb[maxn];//正常点邻接表
vector<int> G[maxn];//强联通邻接表 void init_(){
scanf("%d%d",&N,&M);
for(int i=;i<=N;i++) scanf("%d",&c_lrb[i]);
for(int i=;i<=M;i++){
int x,y,op;
scanf("%d%d%d",&x,&y,&op);
if(op==){
G_lrb[x].push_back(y);rG_lrb[y].push_back(x);
}
else{
G_lrb[x].push_back(y);rG_lrb[x].push_back(y);
G_lrb[y].push_back(x);rG_lrb[y].push_back(x);
}
}
memset(cl,0x3f,sizeof(cl));
} //scc
//////////////////////////////////////////////////////////// int vis[maxn];
vector<int> vec;
void dfs(int x){
if(!white_list[x]) return;
vis[x]=;
for(int i=;i<G_lrb[x].size();i++){
if(!vis[G_lrb[x][i]]) dfs(G_lrb[x][i]);
}
vec.push_back(x);
} void rdfs(int x,int k){
cmp[x]=k;
vis[x]=;
cl[k]=min(cl[k],c_lrb[x]);
cu[k]=max(cu[k],c_lrb[x]); for(int i=;i<rG_lrb[x].size();i++){
if(!vis[rG_lrb[x][i]]) rdfs(rG_lrb[x][i],k);
}
// puts("x");
} void build(int x){
vis[x]=;
int k=cmp[x];
for(int i=;i<G_lrb[x].size();i++){
if(cmp[G_lrb[x][i]]!=k){
if(!vis[G_lrb[x][i]]) build(G_lrb[x][i]);
if(white_list[G_lrb[x][i]])G[k].push_back(cmp[G_lrb[x][i]]);
}
}
} void make_list(){
queue<int> q;
q.push(N);
while(!q.empty()){
int x=q.front();q.pop();
if(vis[x]) continue;white_list[x]=vis[x]=;
for(int i=;i<rG_lrb[x].size();i++){
q.push(rG_lrb[x][i]);
}
}
} int k=;
void scc(){
memset(vis,,sizeof(vis));
make_list();
memset(vis,,sizeof(vis));
for(int i=;i<=N;i++) if(!vis[i]) dfs(i);
memset(vis,,sizeof(vis));
for(int i=vec.size()-;i>=;i--){
int x=vec[i];
if(!vis[x]) rdfs(x,++k);
} memset(vis,,sizeof(vis));
build();
} ////////////////////////////////////////////////////////////
int s,t,ans;//此时节点数为p void work_dfs(int x,int pre_low){
pre_low=min(cl[x],pre_low);
ans=max(ans,cu[x]-pre_low); for(int i=;i<G[x].size();i++){
if(!vis[G[x][i]]) work_dfs(G[x][i],pre_low);
}
} void work(){
s=cmp[],t=cmp[N];
memset(vis,,sizeof(vis));
work_dfs(s,cl[s]);
// for(int i=1;i<=N;i++) printf("%d\n",white_list[i]);
// puts("");
printf("%d",ans);
} int main(){
// freopen("trade.in","r",stdin);//freopen("trade.out","w",stdout);
//注意超时
init_();
scc();
work(); fclose(stdin);fclose(stdout);return ;
}
写了一个强联通分量,果然T了
T4 靶形数独

NOIp #2009的更多相关文章
- 最优贸易 NOIP 2009 提高组 第三题
题目描述 C 国有 n 个大城市和 m 条道路,每条道路连接这 n 个城市中的某两个城市.任意两个 城市之间最多只有一条道路直接相连.这 m 条道路中有一部分为单向通行的道路,一部分 为双向通行的道路 ...
- NOIP 2009 潜伏者
P1071 潜伏者 题目描述 RR 国和 SS 国正陷入战火之中,双方都互派间谍,潜入对方内部,伺机行动.历尽艰险后,潜伏于 SS 国的 RR 国间谍小 CC 终于摸清了 SS 国军用密码的编码规则: ...
- 洛谷P1067 多项式输出 NOIP 2009 普及组 第一题
洛谷P1067 多项式输出 NOIP 2009 普及组 第一题 题目描述 一元n次多项式可用如下的表达式表示: 输入输出格式 输入格式 输入共有 2 行 第一行 1 个整数,n,表示一元多项式的次数. ...
- NOIP 2009 靶形数独(DLX)
小城和小华都是热爱数学的好学生,最近,他们不约而同地迷上了数独游戏,好胜的他们想用数独来一比高低.但普通的数独对他们来说都过于简单了,于是他们向Z 博士请教,Z 博士拿出了他最近发明的“靶形数独”,作 ...
- noip 2009 细胞分裂
/*数论题 考察唯一分解定理 当然用到一些技巧*/ #include<iostream> #include<cstdio> #include<cstring> #d ...
- noip 2009 道路游戏
/*10分钟的暴力 意料之中的5分..*/ #include<iostream> #include<cstdio> #include<cstring> #defin ...
- 【noip 2009】 乌龟棋 记忆化搜索&动规
题目背景 小明过生日的时候,爸爸送给他一副乌龟棋当作礼物. 题目描述 乌龟棋的棋盘是一行N个格子,每个格子上一个分数(非负整数).棋盘第1格是唯一的起点,第N格是终点,游戏要求玩家控制一个乌龟棋子从起 ...
- [NOIp 2009]靶形数独
Description 小城和小华都是热爱数学的好学生,最近,他们不约而同地迷上了数独游戏,好胜的他们想用数独来一比高低.但普通的数独对他们来说都过于简单了,于是他们向 Z 博士请教,Z 博士拿出了他 ...
- [NOIp 2009]Hankson的趣味题
Description Hanks 博士是 BT (Bio-Tech,生物技术) 领域的知名专家,他的儿子名叫 Hankson.现在,刚刚放学回家的 Hankson 正在思考一个有趣的问题. 今天在课 ...
随机推荐
- 5Hibernate入门----青软S2SH(笔记)
这里有个问题,就是这本书第五章的示例代码中的hibernate的jar包有问题,各种找不到类,把lib下的包后换成第六章里的包就好了. 换成5.1的就好了,而且如果只是简单使用hibernate的话, ...
- oracle数据库_实例_用户_表空间之间的关系(转)
数据库:Oracle数据库是数据的物理存储.这就包括(数据文件ORA或者DBF.控制文件.联机日志.参数文件).其实Oracle数据库的概念和其它数据库不一样,这里的数据库是一个操作系统只有一个库.可 ...
- CentOS6.3安装MongoDB2.2 及 安装PHP的MongoDB客户端
下载源码:(放到 /usr/local/src 目录下) 到官网 http://www.mongodb.org/downloads 下载源码 https://fastdl.mongodb.org/li ...
- 04OC之分类Category,协议Protocol,Copy,代码块block
一.Protocol协议 我们都知道,在C#有个规范称之为接口,就是规范一系列的行为,事物.在C#中是使用Interface关键字来声明一个接口的,但是在OC中interface是用来声明类,所以用了 ...
- senlin __init__() got an unexpected keyword argument 'additional_headers'
从senlin源码重新编译更新了服务,然后执行 senlin的 cli就遇到了错误: __init__() got an unexpected keyword argument 'additional ...
- iOS整体框架类图
Cocoa是OS X和iOS操作系统的程序的运行环境. iOS的操作系统层次结构分为四层:触摸UI层,媒体层,核心服务层,核心OS层.其中底层框架提供iOS的基本服务和技术,高层次框架简历在低层次框架 ...
- 史上最简单,一步集成侧滑(删除)菜单,高仿QQ、IOS。
重要的话 开头说,not for the RecyclerView or ListView, for the Any ViewGroup. 本控件不依赖任何父布局,不是针对 RecyclerView. ...
- October 24th Week 44th Monday 2016
True love stories never have endings. 真正的爱情故事永远没有结局. It seems I have been customed to the single lif ...
- October 20th Week 43rd Thursday, 2016
Now, it's clear. OPPO R9s 这一刻 更清晰. I want a new mobile phone, because the one I am using is broken. ...
- ASP.NET知识总结(5.文件上传 文件下载)
5.文件上传 ->说明:使用http协议只适合传输小文件,如果想传递大文件,则需要使用插件或者客户 端程序(使用ftp协议) ->客户端操作 <1>为表单添加属性:encty ...