• HDU 6150


    思路来自 ICPCCamp

    /*
    HDU 6150 - Vertex Cover [ 构造 ]  |  2017 中国大学生程序设计竞赛 - 网络选拔赛
    题意:
    	给了你一个贪心法找最小覆盖的算法,构造一组数据,使得这个程序跑出的答案是正解的三倍以上
    分析:
    	构造一个二分图,左边 n 个节点
    	将左边的点进行 n 次分块,第 i 次分 n/i 块,每块的大小为 i,对于每一块都在右边建一个新的节点和这一块所有的点相连
    	则右边有 nlogn个节点,且每次一定优先选右边,最后取 nlogn >= 3n
    */
    #include <bits/stdc++.h>
    using namespace std;
    typedef pair<int, int> P;
    const int m = 80;
    int n;
    vector<P> ans;
    void init()
    {
        n = m;
        for (int i = 1; i <= m; i++)
            for (int j = 0; j < m/i; j++)
            {
                n++;
                for (int k = 1; k <= i; k++)
                    ans.push_back(P(n, i*j+k));
            }
    }
    int main()
    {
        init();
        printf("%d %d
    ", n, ans.size());
        for (auto & x : ans) printf("%d %d
    ", x.first, x.second);
        printf("%d
    ", m);
        for (int i = 1; i <= m; i++) printf("%d
    ", i);
    }
    

      

  • 相关阅读:
    参数迭代的初始值
    印刷体、手写体公式图片OCR识别转latex
    混合型变量聚类的观点
    算法优化大概的方法
    梯度下降法
    支持向量机-可分的类
    LaTex希腊字母
    红黑树删除操作
    红黑树插入操作
    红黑树
  • 原文地址:https://www.cnblogs.com/nicetomeetu/p/7405446.html
Copyright © 2020-2023  润新知