
P5764 [CQOI2005]新年好
发布日期:2021-05-07 09:41:01
浏览次数:22
分类:精选文章
本文共 1257 字,大约阅读时间需要 4 分钟。
题目
思路
stoorz&QuantAsk&my_dog&myd&Velix:这不是有手就行
真没发现那里有手就行……
第一个反应是Floyd,但是看数据范围n<=50000,凉凉。 接下来我们发现,在求最短路这方面,可以使用dij+堆优化+离散化完成,即只对给定的6个点进行dij。 接下来dfs枚举顺序,AC。 code:#include#include #include using namespace std;int b[6][50001],e=1,first[50001],pu[6];struct f{ int b; int d; int net;} a[200002];bool book[50001];struct f2{ int x,y;} p;bool operator <(const f2 &x,const f2 &y){ return x.x>y.x;}priority_queue c[6];void jb(int x,int y,int z){ a[e].b=y; a[e].d=z; a[e].net=first[x]; first[x]=e; e++; return;}int ans=0x7fffffff;void dfs(int x,int s,int y){ if (s>ans) return; if (x==5) { ans=s; return; } for (int i=5;i>=1;i--) { if (!book[i]) { book[i]=1; dfs(x+1,s+b[y][pu[i]],i); book[i]=0; } } return;}int main(){ int n,m,q; cin>>n>>m; pu[0]=1; for (int i=1;i<6;i++) cin>>pu[i]; int x,y,z; for (int i=1;i<=m;i++) { cin>>x>>y>>z; if (x==y) continue; jb(x,y,z); jb(y,x,z); } for (int j=0;j<6;j++) { q=pu[j]; for (int i=1;i<=n;i++) b[j][i]=0x7fffffff,book[i]=0; b[j][q]=0; p.x=0,p.y=q; c[j].push(p); while (c[j].size()) { int u=c[j].top().y; c[j].pop(); if (book[u]) continue; book[u]=1; for(int i=first[u];i!=0;i=a[i].net) { if(a[i].d+b[j][u]
发表评论
最新留言
网站不错 人气很旺了 加油
[***.192.178.218]2025年04月05日 14时04分13秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
数据库优化
2019-03-06
[备忘]21个演示展示强大的jQuery特效
2019-03-06
[备忘]域用户登陆出现“此工作站和主域间的信任关系失败”错误解决方法
2019-03-06
stout代码分析之二:None类
2019-03-06
hadoop压缩和解压
2019-03-06
继续聊WPF——用Blend自定义Listview控件的列表头
2019-03-06
【WPF】制作自定义的列表项面板
2019-03-06
【.net 深呼吸】启动一个进程并实时获取状态信息
2019-03-06
OO_Unit2 多线程电梯总结
2019-03-06
mybatis源码配置文件解析之五:解析mappers标签(解析class属性)
2019-03-06
json-lib的使用《二》
2019-03-06
LeetCode52题,别再问我N皇后问题了
2019-03-06
Srping源码之BeanFactory.getBean
2019-03-06
Swagger常用注解
2019-03-06
Windbg程序调试系列1-Mex扩展使用总结
2019-03-06
.NET开源类库Nini手册(INI、XML、注册表的配置应用)-中文翻译
2019-03-06
简单实用算法——字节位序反转
2019-03-06
js实现图片(高度不确定)懒加载
2019-03-06