题目链接:codeforces 1627C
题目思路:

给一颗树的边赋值,单条边的权值为质数,相邻两条边的权值和也为质数。

不难发现必然有一条边的权值是 222,与这条边相邻的边的权值是其他任意质数。所以,显然,如果存在可行解的的话,这颗树已经退化成一条链,即不可能有一个节点的度为 333。

于是,只要找到这条链的一端,然后再去根据条件赋值即可。

参考代码:
#include <bits/stdc++.h>
using namespace std;
void solver(){int n;cin >> n;vector<array<int, 2>> a[n+1];for (int i = 1; i <= n-1; i++) {int u, v;   cin >> u >> v;a[u].push_back({v, i});a[v].push_back({u, i});}bool flag = 1;int cur = 0;for (int i = 1; i <= n; i++) {flag &= (a[i].size() <= 2);cur = (a[i].size() == 1? i : cur);}if (flag) {vector<bool> vis(n+1, 0);vector<int> ans(n+1, 0);int w = 2;while (!vis[cur]) {vis[cur] = true;for (auto [v, id] : a[cur]) {if (!vis[v]) {ans[id] = w;w ^= 1;cur = v;break;}}}for (int i = 1; i <= n-1; i++) cout << ans[i] << " \n"[i == n];} else cout << -1 << endl;
}
int main() {int _ = 1;cin >> _;while (_--) {solver();}return 0;
}

codeforces1627C Not Assigning(思维)相关推荐

  1. 图论/思维 C. Not Assigning

    C. Not Assigning lianjie 题意: 给定无向图,要求给边赋值,使得每个边权为质数,长度为2的路径边权和也为质数. 思路: 首先推理得到只有质数2+其他质数=质数,每个长度为2的路 ...

  2. CF 1300.B——Assigning to Classes【思维】

    题目传送门 Reminder: the median of the array [a1,a2,-,a2k+1][a1,a2,-,a_{2k+1}][a1,a2,-,a2k+1​] of odd num ...

  3. 揭富人与穷人21个不同思维 看富豪如何脱颖而出

    <富人是怎么想的>(How Rich People Think)的作者Steve Siebold曾在近30年里采访世界各地的富豪,看究竟是什么让富豪从普通人中站出来. 他发现这和金钱基本没 ...

  4. 学习,思维三部曲:WHAT、HOW、WHY

    学习技术的三部曲:WHAT HOW WHY 我把学习归类为三个步骤:What.How.Why.经过我对周围同事和朋友的观察,大部分感觉自己技术没有提高的人,都仅仅停留在What阶段.下面我把这三个步骤 ...

  5. Linux架构思维导图

    Linux架构思维导图 GUI(Graphical User Interface,图形用户界面) Linux 学习路径 软件框架 Linux 桌面介绍 FHS:文件系统目录标准 Linux 需要特别注 ...

  6. github 思维导图开元软件_画思维导图记笔记的工具软件

    思维导图是很多人在做笔记的时候都会用到的一种记录方式,使用思维导图可以简单有效的表达发散性思维,能够协助人们在各种因素间平衡展开思考,从而提升自己笔记的含金量和工作效率,有没有画思维导图记笔记的工具软 ...

  7. 大数据概念思维导图_思维导图|数据化风控(信用评分建模教程)

    本文将按<数据化风控--信用评分建模教程>行文逻辑,并结合相关参考材料,为大家梳理本书涉及的重点知识,也算是自己读书笔记分享.有需要的同学可先收藏.点赞,以便回顾学习和吸收,当然,如果愿意 ...

  8. puml绘制思维导图_如何用ProcessOn画出漂亮的思维导图

    说到绘制思维导图,很多人可能都知道XMind,但不一定了解ProcessOnProcessOn - 免费在线作图,实时协作,总以为后者绘制流程图很强大,殊不知其在思维导图方面也有很强大的功能. 好工具 ...

  9. 计算机思维采用抽象和分解,凤凰机器人----什么是计算思维?凤凰机器人的编程课中是如何体现它的?...

    对于生活在科技和智能自动化时代的孩子们来说,理解计算机的思维方式,运用计算思维去解决生活中的问题,被认为和听.说.读.写.算一样,是每个人必备的思维能力.然而,到底什么才是计算思维呢? 计算思维是一种 ...

最新文章

  1. python笔记:数组的一些操作
  2. numa节点_极致性能(1):以NUMA为起点
  3. pyqt label上的图片旋转_python中tkinter入门之config、Scale、Canvas和导入图片
  4. 好好学习 天天编程—C语言之我的第一个hello world(二)
  5. Clos Network
  6. vmware虚拟机上的centos安装Hadoop,以及在本地eclipse上运行mapReduce项目,并将文件输出到HDFS中...
  7. [总结] 上海看房体验有感
  8. PAT初级1031(C++)查验身份证
  9. 用计算机处理表格说课稿,信息技术《电子表格的特点及应用》的说课稿
  10. Win10自动修复无法开机【完美解决】
  11. Nyquist三大准则
  12. Matlab 旋转坐标轴标记文本
  13. Altium阴阳拼板教程
  14. 什么是.svn文件? SVN使用说明
  15. 研究QQ、Fetion、Msn的socket连接
  16. Python办公自动化之收发邮件--163和qq邮箱
  17. 电视机体感游戏大盘点
  18. 非root查看手机数据库和SharedPreferences的方法
  19. python股票指标计算库_GitHub - unclevicky/stock: stock,股票系统。使用python进行开发。...
  20. Go+Wails学习笔记(一)环境搭建与配置

热门文章

  1. 副族元素从上到下原子半径_原子的大小以原子半径来表示
  2. HTML在线颜色选择器源码
  3. Linksys WRT54G 路由器溢出漏洞分析—— 运行环境修复
  4. python打包成pyc文件发布_Python 使用pyinstaller将py文件发布成exe程序
  5. 学而滑稽之,不亦乐乎
  6. 从童年回忆到“人人喊打“,好丽友做错了什么?
  7. 固态硬盘的PCIE,SATA,M2,NVMe,AHCI分别都指什么?别再搞混了
  8. 如何生成玫瑰?|数字艺术
  9. Go语言如何高效的进行字符串拼接(6种方式进行对比分析)
  10. 化妆品级羧甲基纤维素钠(CMC)-市场现状及未来发展趋势