http://files.cnblogs.com/files/radiumlrb/NOIP2009%E6%8F%90%E9%AB%98%E7%BB%84%E5%A4%8D%E8%B5%9B%E8%AF%95%E9%A2%98.pdf

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的更多相关文章

  1. 最优贸易 NOIP 2009 提高组 第三题

    题目描述 C 国有 n 个大城市和 m 条道路,每条道路连接这 n 个城市中的某两个城市.任意两个 城市之间最多只有一条道路直接相连.这 m 条道路中有一部分为单向通行的道路,一部分 为双向通行的道路 ...

  2. NOIP 2009 潜伏者

    P1071 潜伏者 题目描述 RR 国和 SS 国正陷入战火之中,双方都互派间谍,潜入对方内部,伺机行动.历尽艰险后,潜伏于 SS 国的 RR 国间谍小 CC 终于摸清了 SS 国军用密码的编码规则: ...

  3. 洛谷P1067 多项式输出 NOIP 2009 普及组 第一题

    洛谷P1067 多项式输出 NOIP 2009 普及组 第一题 题目描述 一元n次多项式可用如下的表达式表示: 输入输出格式 输入格式 输入共有 2 行 第一行 1 个整数,n,表示一元多项式的次数. ...

  4. NOIP 2009 靶形数独(DLX)

    小城和小华都是热爱数学的好学生,最近,他们不约而同地迷上了数独游戏,好胜的他们想用数独来一比高低.但普通的数独对他们来说都过于简单了,于是他们向Z 博士请教,Z 博士拿出了他最近发明的“靶形数独”,作 ...

  5. noip 2009 细胞分裂

    /*数论题 考察唯一分解定理 当然用到一些技巧*/ #include<iostream> #include<cstdio> #include<cstring> #d ...

  6. noip 2009 道路游戏

    /*10分钟的暴力 意料之中的5分..*/ #include<iostream> #include<cstdio> #include<cstring> #defin ...

  7. 【noip 2009】 乌龟棋 记忆化搜索&动规

    题目背景 小明过生日的时候,爸爸送给他一副乌龟棋当作礼物. 题目描述 乌龟棋的棋盘是一行N个格子,每个格子上一个分数(非负整数).棋盘第1格是唯一的起点,第N格是终点,游戏要求玩家控制一个乌龟棋子从起 ...

  8. [NOIp 2009]靶形数独

    Description 小城和小华都是热爱数学的好学生,最近,他们不约而同地迷上了数独游戏,好胜的他们想用数独来一比高低.但普通的数独对他们来说都过于简单了,于是他们向 Z 博士请教,Z 博士拿出了他 ...

  9. [NOIp 2009]Hankson的趣味题

    Description Hanks 博士是 BT (Bio-Tech,生物技术) 领域的知名专家,他的儿子名叫 Hankson.现在,刚刚放学回家的 Hankson 正在思考一个有趣的问题. 今天在课 ...

随机推荐

  1. 5Hibernate入门----青软S2SH(笔记)

    这里有个问题,就是这本书第五章的示例代码中的hibernate的jar包有问题,各种找不到类,把lib下的包后换成第六章里的包就好了. 换成5.1的就好了,而且如果只是简单使用hibernate的话, ...

  2. oracle数据库_实例_用户_表空间之间的关系(转)

    数据库:Oracle数据库是数据的物理存储.这就包括(数据文件ORA或者DBF.控制文件.联机日志.参数文件).其实Oracle数据库的概念和其它数据库不一样,这里的数据库是一个操作系统只有一个库.可 ...

  3. CentOS6.3安装MongoDB2.2 及 安装PHP的MongoDB客户端

    下载源码:(放到 /usr/local/src 目录下) 到官网 http://www.mongodb.org/downloads 下载源码 https://fastdl.mongodb.org/li ...

  4. 04OC之分类Category,协议Protocol,Copy,代码块block

    一.Protocol协议 我们都知道,在C#有个规范称之为接口,就是规范一系列的行为,事物.在C#中是使用Interface关键字来声明一个接口的,但是在OC中interface是用来声明类,所以用了 ...

  5. senlin __init__() got an unexpected keyword argument 'additional_headers'

    从senlin源码重新编译更新了服务,然后执行 senlin的 cli就遇到了错误: __init__() got an unexpected keyword argument 'additional ...

  6. iOS整体框架类图

    Cocoa是OS X和iOS操作系统的程序的运行环境. iOS的操作系统层次结构分为四层:触摸UI层,媒体层,核心服务层,核心OS层.其中底层框架提供iOS的基本服务和技术,高层次框架简历在低层次框架 ...

  7. 史上最简单,一步集成侧滑(删除)菜单,高仿QQ、IOS。

    重要的话 开头说,not for the RecyclerView or ListView, for the Any ViewGroup. 本控件不依赖任何父布局,不是针对 RecyclerView. ...

  8. October 24th Week 44th Monday 2016

    True love stories never have endings. 真正的爱情故事永远没有结局. It seems I have been customed to the single lif ...

  9. 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. ...

  10. ASP.NET知识总结(5.文件上传 文件下载)

    5.文件上传 ->说明:使用http协议只适合传输小文件,如果想传递大文件,则需要使用插件或者客户  端程序(使用ftp协议) ->客户端操作 <1>为表单添加属性:encty ...