2018.08.09洛谷P3959 宝藏(随机化贪心)
传送门 
回想起了自己赛场上乱搜的20分。 
好吧现在也就是写了一个随机化贪心就水过去了,不得不说随机化贪心大法好。 
代码:
#include<bits/stdc++.h>
using namespace std;
inline int read(){
    int ans=0;
    char ch=getchar();
    while(!isdigit(ch))ch=getchar();
    while(isdigit(ch))ans=(ans<<3)+(ans<<1)+(ch^48),ch=getchar();
    return ans;
}
int up,cost[20][20],n,m,dep[20],p[20],ans,sum;
int main(){
    n=read(),m=read(),up=1<<n;
    memset(cost,0x3f,sizeof(cost));
    ans=0x3f3f3f3f;
    for(int i=1;i<=n;++i)cost[i][i]=0,p[i]=i;
    for(int i=1;i<=m;++i){
        int u=read(),v=read(),w=read();
        cost[u][v]=cost[v][u]=min(cost[u][v],w);
    }
    for(int tim=1;tim<=80000;++tim){
        random_shuffle(p+1,p+n+1);
        sum=0;
        for(int i=1;i<=n;++i)dep[i]=0;
        dep[p[1]]=1;
        bool f=true;
        for(int i=2;i<=n;++i){
            int pos=p[i],stp=0x3f3f3f3f;
            for(int j=1;j<=n;++j)if(j!=pos&&dep[j]&&cost[pos][j]!=0x3f3f3f3f)if(dep[j]*cost[pos][j]<stp)stp=dep[j]*cost[pos][j],dep[pos]=dep[j]+1;
            if(stp==0x3f3f3f3f){f=false;break;}
            sum+=stp;
        }
        if(f)ans=min(ans,sum);
    }
    cout<<ans;
    return 0;
}												
											2018.08.09洛谷P3959 宝藏(随机化贪心)的更多相关文章
- 洛谷 P3959 宝藏 解题报告
		
P3959 宝藏 题目描述 参与考古挖掘的小明得到了一份藏宝图,藏宝图上标出了 \(n\) 个深埋在地下的宝藏屋, 也给出了这 \(n\) 个宝藏屋之间可供开发的 \(m\) 条道路和它们的长度. 小 ...
 - 洛谷P3959——宝藏
		
传送门:QAQQAQ 题意: 参与考古挖掘的小明得到了一份藏宝图,藏宝图上标出了$n$个深埋在地下的宝藏屋, 也给出了这$n$个宝藏屋之间可供开发的$m$条道路和它们的长度. 小明决心亲自前往挖掘所有 ...
 - 洛谷P3959 宝藏(NOIP2017)(状压DP,子集DP)
		
洛谷题目传送门 Dalao的题解多数是什么模拟退火.DFS剪枝.\(O(3^nn^2)\)的状压DP之类.蒟蒻尝试着把状压改进了一下使复杂度降到\(O(3^nn)\). 考虑到每条边的贡献跟它所在的层 ...
 - 洛谷P3959 宝藏
		
去年NOIP第二毒瘤(并不)的题终于被我攻克了,接下来就只剩noip难度巅峰列队了. 首先说一下三种做法:随机化,状压DP和搜索. 前两种做法我都A了,搜索实在是毒瘤,写鬼啊. 有些带DFS的记忆化搜 ...
 - 2018.11.09 洛谷P1110 [ZJOI2007]报表统计(multiset)
		
传送门 sb题. 直接用两个multisetmultisetmultiset维护相邻两个数的差值和所有数的前驱后继. 插入一个数的时候更新一下就行了. 代码: #include<bits/std ...
 - 2018.08.28 洛谷P4556 [Vani有约会]雨天的尾巴(树上差分+线段树合并)
		
传送门 要求维护每个点上出现次数最多的颜色. 对于每次修改,我们用树上差分的思想,然后线段树合并统计答案就行了. 注意颜色很大需要离散化. 代码: #include<bits/stdc++.h& ...
 - 2018.08.28 洛谷P3803 【模板】多项式乘法(FFT)
		
传送门 fft模板题. 终于学会fft了. 这个方法真是神奇! 经过试验发现手写的complex快得多啊! 代码: #include<iostream> #include<cstdi ...
 - 2018.08.28 洛谷P4360 [CEOI2004]锯木厂选址(斜率优化dp)
		
传送门 一道斜率优化dp入门题. 是这样的没错... 我们用dis[i]表示i到第三个锯木厂的距离,sum[i]表示前i棵树的总重量,w[i]为第i棵树的重量,于是发现如果令第一个锯木厂地址为i,第二 ...
 - 2018.08.28 洛谷P3345 [ZJOI2015]幻想乡战略游戏(点分树)
		
传送门 题目就是要求维护带权重心. 因此破题的关键点自然就是带权重心的性质. 这时发现直接找带权重心是O(n)的,考虑优化方案. 发现点分树的树高是logn级别的,并且对于以u为根的树,带权重心要么就 ...
 
随机推荐
- 深入浅出理解依赖注入这种由外部负责其依赖需求的行为,我们可以称其为 “控制反转(IoC)”
			
原文地址: http://www.insp.top/learn-laravel-container ,转载务必保留来源,谢谢了! 这个组件现在可以很简单的获取到它所需要的服务,服务采用延迟加载的方式, ...
 - java.lang.AbstractMethodError: org.mybatis.spring.transaction.SpringManagedTransaction.getTimeout()L
			
mybatis与springboot集成的时候,报错:java.lang.AbstractMethodError: org.mybatis.spring.transaction.SpringManag ...
 - canal HA配置
			
https://github.com/alibaba/canal/wiki/AdminGuide#ha%E6%A8%A1%E5%BC%8F%E9%85%8D%E7%BD%AE HA模式配置 1. 机器 ...
 - as3 声明变量
			
var a:int=0, b, c:Number=2; trace(a,b,c) /* 0 undefined 2 */ var a:int, b:uint, c:Number; var d:Stri ...
 - uiview animation 卡一下
			
原因:有个下载图片的地方在主线程执行,导致动画卡一下.
 - 将Ctrl+Alt+Delete键进行屏蔽,防止误操作重启服务器
			
[root@bgw-t ~]# vi /etc/init/control-alt-delete.conf #exec /sbin/shutdown -r now "Control-Alt- ...
 - 安装oracle后java -version命令显示 jdk version "1.3.1"的原因
			
因为先装的JDK,后装了oracle,oracle的JDK配置把原来的jdk路径替换掉了. 我的电脑->属性->高级->环境变量->系统变量->PATH ,把JDK的路径 ...
 - 迭代删除元素 并发bug 低级错误
			
方法一:HashMap<String, Integer> myHashMap = new HashMap<>();myHashMap.put("1", 1) ...
 - swagger ui
			
You can pull a pre-built docker image of the swagger-ui directly from Dockerhub: docker pull swagger ...
 - SmartOS技术常见问题
			
什么是默认用户名和密码? 当SmartOS Live Image第一次启动时,系统将提示您设置root密码. 如果在不导入Zpool的情况下启动SmartOS,则需要默认的root密码. 当使用noi ...