codeforces1627C Not Assigning(思维)
题目链接: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(思维)相关推荐
- 图论/思维 C. Not Assigning
C. Not Assigning lianjie 题意: 给定无向图,要求给边赋值,使得每个边权为质数,长度为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 ...
- 揭富人与穷人21个不同思维 看富豪如何脱颖而出
<富人是怎么想的>(How Rich People Think)的作者Steve Siebold曾在近30年里采访世界各地的富豪,看究竟是什么让富豪从普通人中站出来. 他发现这和金钱基本没 ...
- 学习,思维三部曲:WHAT、HOW、WHY
学习技术的三部曲:WHAT HOW WHY 我把学习归类为三个步骤:What.How.Why.经过我对周围同事和朋友的观察,大部分感觉自己技术没有提高的人,都仅仅停留在What阶段.下面我把这三个步骤 ...
- Linux架构思维导图
Linux架构思维导图 GUI(Graphical User Interface,图形用户界面) Linux 学习路径 软件框架 Linux 桌面介绍 FHS:文件系统目录标准 Linux 需要特别注 ...
- github 思维导图开元软件_画思维导图记笔记的工具软件
思维导图是很多人在做笔记的时候都会用到的一种记录方式,使用思维导图可以简单有效的表达发散性思维,能够协助人们在各种因素间平衡展开思考,从而提升自己笔记的含金量和工作效率,有没有画思维导图记笔记的工具软 ...
- 大数据概念思维导图_思维导图|数据化风控(信用评分建模教程)
本文将按<数据化风控--信用评分建模教程>行文逻辑,并结合相关参考材料,为大家梳理本书涉及的重点知识,也算是自己读书笔记分享.有需要的同学可先收藏.点赞,以便回顾学习和吸收,当然,如果愿意 ...
- puml绘制思维导图_如何用ProcessOn画出漂亮的思维导图
说到绘制思维导图,很多人可能都知道XMind,但不一定了解ProcessOnProcessOn - 免费在线作图,实时协作,总以为后者绘制流程图很强大,殊不知其在思维导图方面也有很强大的功能. 好工具 ...
- 计算机思维采用抽象和分解,凤凰机器人----什么是计算思维?凤凰机器人的编程课中是如何体现它的?...
对于生活在科技和智能自动化时代的孩子们来说,理解计算机的思维方式,运用计算思维去解决生活中的问题,被认为和听.说.读.写.算一样,是每个人必备的思维能力.然而,到底什么才是计算思维呢? 计算思维是一种 ...
最新文章
- python笔记:数组的一些操作
- numa节点_极致性能(1):以NUMA为起点
- pyqt label上的图片旋转_python中tkinter入门之config、Scale、Canvas和导入图片
- 好好学习 天天编程—C语言之我的第一个hello world(二)
- Clos Network
- vmware虚拟机上的centos安装Hadoop,以及在本地eclipse上运行mapReduce项目,并将文件输出到HDFS中...
- [总结] 上海看房体验有感
- PAT初级1031(C++)查验身份证
- 用计算机处理表格说课稿,信息技术《电子表格的特点及应用》的说课稿
- Win10自动修复无法开机【完美解决】
- Nyquist三大准则
- Matlab 旋转坐标轴标记文本
- Altium阴阳拼板教程
- 什么是.svn文件? SVN使用说明
- 研究QQ、Fetion、Msn的socket连接
- Python办公自动化之收发邮件--163和qq邮箱
- 电视机体感游戏大盘点
- 非root查看手机数据库和SharedPreferences的方法
- python股票指标计算库_GitHub - unclevicky/stock: stock,股票系统。使用python进行开发。...
- Go+Wails学习笔记(一)环境搭建与配置
热门文章
- 副族元素从上到下原子半径_原子的大小以原子半径来表示
- HTML在线颜色选择器源码
- Linksys WRT54G 路由器溢出漏洞分析—— 运行环境修复
- python打包成pyc文件发布_Python 使用pyinstaller将py文件发布成exe程序
- 学而滑稽之,不亦乐乎
- 从童年回忆到“人人喊打“,好丽友做错了什么?
- 固态硬盘的PCIE,SATA,M2,NVMe,AHCI分别都指什么?别再搞混了
- 如何生成玫瑰?|数字艺术
- Go语言如何高效的进行字符串拼接(6种方式进行对比分析)
- 化妆品级羧甲基纤维素钠(CMC)-市场现状及未来发展趋势