当前位置: 首页 > wzjs >正文

常州网站建设案例无法运行电脑wordpress

常州网站建设案例,无法运行电脑wordpress,什么网站做的好看又便宜,品牌推广怎么做题目描述 nn 个人参加某项特殊考试。 为了公平,要求任何两个认识的人不能分在同一个考场。 求是少需要分几个考场才能满足条件。 输入描述 输入格式: 第一行,一个整数 nn (1≤n≤1001≤n≤100),表示参加考试的人数。 第二行…

题目描述

nn 个人参加某项特殊考试。

为了公平,要求任何两个认识的人不能分在同一个考场。

求是少需要分几个考场才能满足条件。

输入描述

输入格式:

第一行,一个整数 nn (1≤n≤1001≤n≤100),表示参加考试的人数。

第二行,一个整数 mm,表示接下来有 mm 行数据。

以下 mm 行每行的格式为:两个整数 a,ba,b,用空格分开 ( 1≤a,b≤n1≤a,b≤n )表示第 aa 个人与第 bb 个人认识。

输出描述

输出一行一个整数,表示最少分几个考场。

输入输出样例

示例

输入

5
8
1 2
1 3
1 4
2 3
2 4
2 5
3 4
4 5

输出

4

运行限制

  • 最大运行时间:1s
  • 最大运行内存: 256M

总通过次数: 4611  |  总提交次数: 6677  |  通过率: 69.1%

方法思路

为了解决分考场问题(即图的着色问题),我们需要将n个人分配到尽可能少的考场中,使得任意两个认识的人不在同一个考场。这是一个经典的图着色问题,我们使用回溯法(DFS)结合贪心策略和剪枝优化来解决。

解决思路

算法特点

  1. 问题建模:将每个人看作图中的一个节点,认识关系看作边,问题转化为求图的最小色数(即用最少的颜色给图着色,相邻节点颜色不同)。

  2. 贪心初始解:使用贪心算法(Welch-Powell算法)计算初始上界,减少回溯搜索空间。

  3. 回溯搜索:按度数降序处理节点,尝试将每个节点分配到现有考场或新考场。

  4. 剪枝优化:当当前考场数超过已知最优解时,剪枝。

  5. 状态更新:递归尝试所有可能分配,找到最小考场数。

    #include <iostream>
    #include <vector>
    #include <algorithm>
    #include <climits>
    using namespace std;int n, m;
    vector<vector<int>> graph;
    vector<int> deg;
    vector<vector<int>> rooms;
    int min_rooms = INT_MAX;// 贪心着色算法:计算初始上界
    int greedyColoring(vector<int>& order) {vector<int> color(n, -1);int max_color = 0;for (int i = 0; i < n; i++) {int u = order[i];vector<bool> available(n + 1, true);for (int v = 0; v < n; v++) {if (graph[u][v] && color[v] != -1) {available[color[v]] = false;}}int c = 1;while (c <= n && !available[c]) c++;color[u] = c;max_color = max(max_color, c);}return max_color;
    }// 回溯搜索最小考场数
    void dfs(int idx, vector<int>& order) {if (rooms.size() >= min_rooms) return;  // 剪枝if (idx == n) {min_rooms = rooms.size();  // 更新最优解return;}int person = order[idx];// 尝试放入现有考场for (int i = 0; i < rooms.size(); i++) {bool valid = true;for (int p : rooms[i]) {if (graph[person][p]) {valid = false;break;}}if (valid) {rooms[i].push_back(person);dfs(idx + 1, order);rooms[i].pop_back();}}// 尝试新开考场rooms.push_back({person});dfs(idx + 1, order);rooms.pop_back();
    }int main() {cin >> n >> m;graph.resize(n, vector<int>(n, 0));deg.resize(n, 0);// 构建图和度数数组for (int i = 0; i < m; i++) {int a, b;cin >> a >> b;a--; b--;  // 转换为0-indexedgraph[a][b] = 1;graph[b][a] = 1;deg[a]++;deg[b]++;}// 创建排序索引(按度数降序)vector<int> order(n);for (int i = 0; i < n; i++) order[i] = i;sort(order.begin(), order.end(), [&](int i, int j) {return deg[i] > deg[j];});// 贪心算法获取初始上界min_rooms = greedyColoring(order);// 回溯搜索最优解rooms.clear();dfs(0, order);cout << min_rooms << endl;return 0;
    }

    代码解释

  6. 输入处理

    • 读取人数n和认识关系数m

    • 构建邻接矩阵graph存储认识关系

    • 计算每个节点的度数deg

  7. 节点排序

    • 创建索引数组order

    • 按度数降序排序,优先处理度数高的节点(减少回溯分支)

  8. 贪心+回溯:先用贪心算法获取较优解,再用回溯搜索优化

  9. 剪枝优化:当当前考场数≥已知最优解时剪枝

  10. 节点排序:按度数降序处理节点,提高剪枝效率

  11. 时间复杂度:最坏情况O(n!),但通过剪枝和贪心初始解,实际运行效率较高

    • 贪心初始解

      • greedyColoring函数实现Welch-Powell算法

      • 为每个节点分配可用最小颜色

      • 返回使用的颜色数作为初始上界

    • 回溯搜索

      • dfs函数实现回溯搜索

      • 参数idx:当前处理的节点索引(在order中)

      • 尝试将当前节点分配到现有考场(检查冲突)

      • 尝试为当前节点新开考场

      • 当分配的考场数超过当前最优解时剪枝

    • 结果输出

      • 回溯结束后输出最小考场数min_rooms


文章转载自:

http://zQ348oqF.npqps.cn
http://r8GLri0m.npqps.cn
http://1NprcMO4.npqps.cn
http://JozoZmpR.npqps.cn
http://32IVFmCf.npqps.cn
http://RDi7IsSP.npqps.cn
http://HIw6Zafh.npqps.cn
http://cBn5afgK.npqps.cn
http://RM9lY1u1.npqps.cn
http://1Du9q9Fl.npqps.cn
http://ze6sj5zk.npqps.cn
http://j00QFftS.npqps.cn
http://wl8TImY5.npqps.cn
http://P26v67pU.npqps.cn
http://gnnhtCW6.npqps.cn
http://4FhmRdxz.npqps.cn
http://EqY7B4LM.npqps.cn
http://7IR0fcuD.npqps.cn
http://411GataA.npqps.cn
http://Fng25Jpl.npqps.cn
http://FGHC2bfO.npqps.cn
http://3Z90WCSv.npqps.cn
http://ldMCn1Uo.npqps.cn
http://aBU2G2RC.npqps.cn
http://jIi2Q1bB.npqps.cn
http://Aqpk2yrs.npqps.cn
http://qnED6WMj.npqps.cn
http://vJmltBnu.npqps.cn
http://88YOjgun.npqps.cn
http://8Gg2Fv9o.npqps.cn
http://www.dtcms.com/wzjs/682660.html

相关文章:

  • 东莞网络建站wordpress网站加cnzz
  • 风车网站做花盆磨具wordpress关闭发表评论
  • 网站费用预算外贸网站建设招聘
  • 天津网站建设开发维护公司seo是指什么意思
  • 自己的网站统计输入词如何注销网站备案号
  • 微信公众好第三方网站怎么做做商城网站的流程
  • 那个做动态表情包的网站360优化大师官方网站
  • 摄影旅游网站源码制作网页的步骤
  • 怎么样做网站卖农产品建站平台塔山双喜
  • 手机网页制作与网站建设上海原画培训机构排名
  • 二手站网站怎做网站开发定制案例展示
  • 网站域名备案要多久遵义网站建设优化公司
  • 百度网站权重排行竞价培训课程
  • 影视视频网站怎么做哪里做网站最便宜
  • 电商网站建设方案100例衡水住房和城乡建设局网站
  • 学校网站建设的必要性wordpress如何修改php
  • 设计云网站建设做系统去哪个网站
  • 酒店网站可以怎么做凡科快图登录入口
  • h5做的分销网站让医院做网站的策划书
  • 代做网站在哪找活网站建设文字设计
  • 岳阳卖房网站wordpress进入控制台
  • 广州制作网站开发东莞住房和城乡建设网官网
  • 深圳沙井做网站公司郴州网络推广公司在哪里
  • 学院网站设计方案广告关键词有哪些
  • 深圳智能响应网站建设公司网站百度小程序开发
  • 酒店网站设计方案wordpress图片去水印
  • 烟台网站建设专业臻动传媒微信小程序卖货怎么注册
  • 网站建设报价方案下载昆明seo优化
  • 人像摄影网站十大排名隆化县建设局网站
  • 沈阳网站icp备案wordpress代码编辑