POJ3921
搜索
每次找出最短路 如果小于等于k 那么必定这里有一点是要被删掉的
枚举这个最短路径上的每一个点 (一般不会超过20) 将其相邻边删除
用dijskra求最短路径并且保存即可
深度搜索
#include<cstdio>
#include<cstring>
#define maxn 1000000
bool kill[51],p[51][51],pd[51];
int dist[51],ans,n,m,k;
void dfs(int pans)
{
if(pans>=ans) return;
int i,j,pre[50],minj,minn;
for(i=1;i<=n;i++)
if(p[1][i]&&!kill[i]) {dist[i]=1;pre[i]=1;}
else dist[i]=maxn;
memset(pd,0,sizeof(pd));
dist[1]=0;
pd[1]=1;
for(i=2;i<=n;i++){
minn=maxn;
for(j=1;j<=n;j++)
if(dist[j]<minn&&!pd[j]){
minn=dist[j];
minj=j;
}
if(minn==maxn) break;
pd[minj]=1;
for(j=1;j<=n;j++)
if(dist[j]>dist[minj]+1&&!pd[j]&&p[minj][j]&&!kill[j]){
dist[j]=dist[minj]+1;
pre[j]=minj;
}
}
if(dist[n]<=k){
j=pre[n];
while(j!=1){
kill[j]=1;
dfs(pans+1);
kill[j]=0;
j=pre[j];
}
}
else if(ans>pans) ans=pans;
}
int main()
{
int i,j,x,y;
while(1){
ans=maxn;
scanf("%d%d%d",&n,&m,&k);
if(n==0) break;
memset(p,0,sizeof(p));
memset(kill,0,sizeof(0));
for(i=1;i<=m;i++){
scanf("%d%d",&x,&y);
p[x][y]=1;
}
dfs(0);
printf("%d\n",ans);
}
return 0;
}
POJ3921的更多相关文章
随机推荐
- input onfocus onblur
<input type="text" style="color:#999" value="账户" onfocus='if(this.v ...
- 使用GruntJS构建Web程序
Gruntjs是JavaScript项目的构建工具,也是基于node的一个命令行工具.很多开源JS项目都是使用它搭建.如jQuery.Qunit.CanJS等.它有以下作用 合并JS文件 压缩JS文件 ...
- PHP 跨域写cookie
实际工作中,类似这样的要求很多,比如说,我们有两个域名,我们想实现在一个域名登录后,能自动完成另一个域名的登录,也就是PASSPORT的功能. 我只写一个大概,为了测试的方便,先编辑hosts文件,加 ...
- 什么是PRD、MRD与BRD
什么是PRD? 什么是MRD? 什么是BRD? 一.PRD的含义 英文简称,PRD(Product Requirement Document),PRD文档中文意思是:产品需求文档. PRD文档是产品项 ...
- .net mvc 防止 xss 与 CSRF
CSRF(Cross-site request forgery跨站请求伪造,也被称成为“one click attack”或者session riding,通常缩写为CSRF或者XSRF,是一种对网站 ...
- python3 pyqt5 和eric5配置教程
一.大纲内容: 1.预备PC环境: 2.预备安装程序: 2.1.下载Python3.2 2.2.下载PyQt4 2.3.下载Eric5 3.安装配置步骤: 3.1.安装Pyhon3.2 3.2.安装P ...
- Ajax的理解
初学JS,一直认为Ajax是个很高级的.不可亵玩的东西.这两天怀着忐忑的心情接触了一下它, 感觉它并没有想象中的那么难理解. 其实,Ajax就是浏览器端向服务器请求资源的一个对象(方法). 就跟打电话 ...
- envi中多波段图层叠加layer stacking
Basic Tools——layer stacking 选择投影和输出的文件 波段1-7波段图层都叠加在一个文件中了
- class_create(),device_create自动创建设备文件结点
class_create(),device_create自动创建设备文件结点 从linux 内核2.6的某个版本之后,devfs不复存在,udev成为devfs的替代.相比devfs,udev有很多优 ...
- lua5.3调用C/C++
马上面临毕业设计,打算做点跟网游有关的,先从做周边工具开始,目前正在做一个协议序列化和反序列化的东西,广告一波先: https://github.com/Anti-Magic/rproto 目前非常简 ...