zoukankan      html  css  js  c++  java
  • CF1310D解题报告

    随机算法用到这步也是绝了

    题意

    (nleq 80​)个点完全有向连通图,走(k​)步回到起点(1​)且没有奇环,求最小代价

    题解

    没有奇环很容易(个屁嘞)想到二分图,于是每次对每个点随机染色,然后用(O(n^2k))(DP)轻松求出当前条件下的最小代价,考虑如果我们已经知道了最终的一条最优路径,这上面最多有(k)个点,那么这(k)个点在一种染色方案中黑白相间的概率是(1/2^{k-1}),这样重复(5000)次后不正确答案的概率就是((511/512)^{5000}approx0.000056845461206)!!!!

    Code

    #include <bits/stdc++.h>
    using namespace std;
    
    long long ans = 1e18, f[13][83];
    int n, k, mp[83][83], col[83];
    
    int main() {
    	srand(time(0));
    	scanf("%d %d", &n, &k);
    	for(int i = 1; i <= n; i++)
    		for(int j = 1; j <= n; j++)
    			scanf("%d", &mp[i][j]);
    	for(int _ = 1; _ <= 5000; _++) {
    		for(int i = 1; i <= n; i++) {
    			col[i] = rand() % 2;
    		}
    		memset(f, 0x3f, sizeof(f));
    		f[0][1] = 0;
    		for(int i = 1; i <= k; i++)
    			for(int j = 1; j <= n; j++)
    				for(int k = 1; k <= n; k++)
    					if(col[j] != col[k]) f[i][j] = min(f[i][j], f[i - 1][k] + mp[k][j]);
    		ans = min(ans, f[k][1]);
    	}
    	printf("%lld
    ", ans);
    	return 0;
    }
    
  • 相关阅读:
    Pythonlistsort()
    [转]Python中文乱码问题深入分析
    使用dom4j时SelectNodes()方法报错
    Xpath语法
    wust2012级软件工程新生经验交流会草稿
    Eclipse中部分快捷键
    Dom4j解析XML学习代码
    html5 cocos2d
    mfc mfc100ud.dll丢失问题
    c# 类操作 窗体
  • 原文地址:https://www.cnblogs.com/JHDHJjuruo/p/12636812.html
Copyright © 2011-2022 走看看