BZOJ4076 : [Wf2014]Maze Reduction
设$f[i][j][k]$表示从房间$j$的第$k$扇门进去探索不超过$i$步的情况。
对于$0$步的情况,可以用每个房间的度数来表示。
否则可以绕着那个房间走一圈,将所有情况依次hash来表示。
最后对于每个房间求出$f$的最小表示,即可完成hash。
时间复杂度$O(n^4)$。
#include<cstdio>
#include<vector>
#include<algorithm>
using namespace std;
typedef unsigned long long ll;
const int N=105;
int n,m,i,j,k,t,o,x,d[N],a[N][N],b[N][N],q[N];ll f[2][N][N];
vector<ll>g[N];vector<int>ans[N];
inline bool cmp(int x,int y){return g[x]==g[y]?x<y:g[x]<g[y];}
int main(){
scanf("%d",&n);
for(i=1;i<=n;i++){
scanf("%d",&d[i]);
for(j=1;j<=d[i];j++)scanf("%d",&a[i][j]),b[i][a[i][j]]=j;
}
for(i=1;i<=n;i++)for(j=1;j<=d[i];j++)f[0][i][j]=d[i]+1;
for(i=1;i<=n;i++){
o^=1;
for(j=1;j<=n;j++)for(k=1;k<=d[j];k++){
f[o][j][k]=f[o^1][j][k]*10007+13331;
x=a[j][k];
for(t=b[x][j];t<=d[x];t++)f[o][j][k]=f[o][j][k]*233+f[o^1][x][t];
for(t=1;t<b[x][j];t++)f[o][j][k]=f[o][j][k]*233+f[o^1][x][t];
}
}
for(i=1;i<=n;i++){
for(j=1;j<=d[i];j++)g[i].push_back(f[o][i][j]);
for(j=2;j<=d[i];j++){
vector<ll>h;
for(k=j;k<=d[i];k++)h.push_back(f[o][i][k]);
for(k=1;k<j;k++)h.push_back(f[o][i][k]);
g[i]=max(g[i],h);
}
g[i].push_back(d[i]);
q[i]=i;
}
sort(q+1,q+n+1,cmp);
for(i=1;i<=n;i=j){
for(j=i;j<=n&&g[q[i]]==g[q[j]];j++);
if(i+1==j)continue;
for(m++,k=i;k<j;k++)ans[m].push_back(q[k]);
}
if(!m)puts("none");
else{
sort(ans+1,ans+m+1);
for(i=1;i<=m;i++){
printf("%d",ans[i][0]);
for(j=1;j<ans[i].size();j++)printf(" %d",ans[i][j]);
puts("");
}
}
return 0;
}
BZOJ4076 : [Wf2014]Maze Reduction的更多相关文章
- bzoj AC倒序
		Search GO 说明:输入题号直接进入相应题目,如需搜索含数字的题目,请在关键词前加单引号 Problem ID Title Source AC Submit Y 1000 A+B Problem ... 
- Backtracking algorithm: rat in maze
		Sept. 10, 2015 Study again the back tracking algorithm using recursive solution, rat in maze, a clas ... 
- Lattice Reduction (LLL) 算法C代码实现
		废话不多说,大名鼎鼎的Lenstra-Lenstra-Lovasz(LLL) 算法.实现参考论文:Factoring Polynomials with Rational Coefficients, 作 ... 
- (期望)A Dangerous Maze(Light OJ 1027)
		http://www.lightoj.com/volume_showproblem.php?problem=1027 You are in a maze; seeing n doors in fron ... 
- Stanford机器学习笔记-10. 降维(Dimensionality Reduction)
		10. Dimensionality Reduction Content 10. Dimensionality Reduction 10.1 Motivation 10.1.1 Motivation ... 
- CUDA中并行规约(Parallel Reduction)的优化
		转自: http://hackecho.com/2013/04/cuda-parallel-reduction/ Parallel Reduction是NVIDIA-CUDA自带的例子,也几乎是所有C ... 
- 1204.   Maze Traversal
		1204. Maze Traversal A common problem in artificial intelligence is negotiation of a maze. A maze ... 
- uva705--slash maze
		/*这道题我原本是将斜线迷宫扩大为原来的两倍,但是在这种情况下对于在斜的方向上的搜索会变的较容易出错,所以参考了别人的思路后将迷宫扩展为原来的3倍,这样就变成一般的迷宫问题了*/ #include&q ... 
- HDU 4048 Zhuge Liang's Stone Sentinel Maze
		Zhuge Liang's Stone Sentinel Maze Time Limit: 10000/4000 MS (Java/Others) Memory Limit: 32768/327 ... 
随机推荐
- 目标检测中的mAP
			一.IOU的概念 交集和并集的比例(所谓的交集和并集,都是预测框和实际框的集合关系).如图: 二.Precision(准确率)和Recall(召回率)的概念 对于二分类问题,可将样例根据其真实类别和预 ... 
- zookeeper都有哪些使用场景
			分布式协调 这个其实是zk很经典的一个用法,比如,A系统发送个请求到mq,然后B拿到消息消费之后处理了.那A系统如何知道B系统的处理结果? 用zk就可以实现分布式系统之间的协调工作.A系统发送请求之后 ... 
- 一脸懵逼学习Hive的使用以及常用语法(Hive语法即Hql语法)
			Hive官网(HQL)语法手册(英文版):https://cwiki.apache.org/confluence/display/Hive/LanguageManual Hive的数据存储 1.Hiv ... 
- .net remoting(1)简单例子
			1.例子(程序间的通讯) class Program { static void Main(string[] args) { HttpChannel _channel = ); ChannelServ ... 
- csv导入数据到mongodb3.2
			mongoimport.exe -d paper -c paper K:\paper.csv --type csv -f id,name 数据库名 表名 文件所在位置 文件类型 ... 
- HTML5漫谈(7)——如何保护HTML5应用代码
			独家供稿:移动Labs HTML5应用采用的仍然是Javascript(JS).HTML.CSS 等Web语言,因而其代码保护就是这些Web代码的保护,而HTML5应用主要功能一般采用JS实现,因此J ... 
- MaterialEditText——Android Material Design EditText控件
			MaterialEditText是Android Material Design EditText控件.可以定制浮动标签.主要颜色.默认的错误颜色等. 随着 Material Design 的到来, ... 
- keepalived当主节点切换时脚本通知 lvs
			脚本 在keepalived.conf中添加 mail 查看邮件 实验dr实验模型 给director 做主从 4台服务器 rip:192.168.0.103 rip2:192.168.0.104 ... 
- Loadbalancer
			LoadBalancer 可以将来自客户端的请求分发到不同的服务器,通过将一系列的请求转发到不同的服务器可以提高服务器的性能,并可以自动地寻找最优的服务器转发请求,这样不仅提高了系统性能,同时达到了负 ... 
- UOJ#33. 【UR #2】树上GCD   点分治 莫比乌斯反演
			原文链接https://www.cnblogs.com/zhouzhendong/p/UOJ33.html 题解 首先我们把问题转化成处理一个数组 ans ,其中 ans[i] 表示 d(u,a) 和 ... 
