zoukankan      html  css  js  c++  java
  • codeforces 233 C. Cycles(贪心+思维)

    题目链接:http://codeforces.com/contest/233/problem/C

    题意:在一个无相图中有N个长度为3 的回路,输出符合条件的图。注意此图的节点数不得超过100

    题解:贪心即可具体怎么贪心看代码。

    #include <iostream>
    #include <cstring>
    using namespace std;
    bool vis[120][120];
    int main() {
        int k , n;
        cin >> k;
        memset(vis , false , sizeof(vis));
        vis[1][2] = vis[2][1] = true;
        //下面for的是遍历添加上去的点
        for(int i = 3 ; i <= 100 ; i++) {
            n = i;
            for(int j = 1 ; j < i ; j++) {
                int sum = 0;
                //下面的for表示i与j连接之后如果还有一个点和它们两个相连那么就能构成三角形
                for(int l = 1 ; l < j ; l++) {
                    if(vis[j][l] && vis[i][l]) sum++;
                }
                //下面的if很关键,如果可以减点就减去并把这条边连上,否则就跳过。因为再添加一个点之后这个点所能贡献的三角形个数与上一个有关而且可以从1开始到n这就要看上一些点是怎么连的。
                if(k >= sum) {
                    k -= sum;
                    vis[i][j] = vis[j][i] = true;
                }
                if(k == 0) break;
            }
            if(k == 0) break;
        }
        cout << n << endl;
        for(int i = 1 ; i <= n ; i++) {
            for(int j = 1 ; j <= n ; j++) {
                cout << vis[i][j];
            }
            cout << endl;
        }
        return 0;
    }
    
  • 相关阅读:
    Nginx 模块:--with-http_sub_status_module
    Nginx http请求&日志
    Nginx 目录和配置语法&DNS配置
    Nginx 全局配置
    Nginx 相关操作1
    Nginx入坑基础篇
    杂谈maven工程实践(3)
    杂谈maven工程类型(2)
    杂谈maven相关概念(1)
    Django
  • 原文地址:https://www.cnblogs.com/TnT2333333/p/6972099.html
Copyright © 2011-2022 走看看