图论/思维 C. Not Assigning
C. Not Assigning
lianjie
题意:
给定无向图,要求给边赋值,使得每个边权为质数,长度为2的路径边权和也为质数。
思路:
- 首先推理得到只有质数2+其他质数=质数,每个长度为2的路径必须包含一条边权为2的边,所以如果要满足条件,不可能有一个点的度数>2,整个无向图形成了一条链式结构。
#include<iostream>
#include<vector>
#include<map>
#include<cstring>
using namespace std;
const int N=2e5+100;
typedef pair<int,int> PII;
int n;
int e[N],h[N],ne[N],w[N],idx;
bool st[N];map<PII,int>mp; //记录边权void add(int a,int b)
{e[idx]=b,ne[idx]=h[a],h[a]=idx++; }//dfs给链边按照2,3,2,3··赋值
void dfs(int u,int t)
{st[u]=true;for(int i=h[u];i!=-1;i=ne[i]){int j=e[i];if(!st[j]){st[j]=true;mp[{u,j}]=mp[{j,u}]=t; //因为是无向边dfs(j,t^1); //边权取返技巧:2^1=3,3^1=2}}
}int main()
{int t;cin>>t;while(t--) {cin>>n;memset(st,false,sizeof st); vector<int>d(n+1,0); //度数vector<PII>c; //边(a,b)idx=0;memset(h,-1,sizeof h);for(int i=0;i<n-1;i++){int a,b;cin>>a>>b;add(a,b); add(b,a); //建立无向边c.push_back({a,b}); //存下边,方便后面输出d[a]++,d[b]++; //记录度数}//判断无解情况:存在点的度数>2bool f=0;for(int i=1;i<=n;i++){if(d[i]>2){f=1;break;}}if(f) {cout<<-1<<endl;continue;}//找到第一个度数为1的点为链的起点for(int i=1;i<=n;i++)if(d[i]==1) {dfs(i,2); break;} //按照输入边的顺序输出边权for(int i=0;i<n-1;i++){int a=c[i].first,b=c[i].second;cout<<mp[{a,b}]<<" ";}cout<<endl;}return 0;
}
图论/思维 C. Not Assigning相关推荐
- 图论 ---- 思维搜索全图任意位置传送 1520G - To Go Or Not To Go?
题目链接 题目大意: 给出网格,格子中有墙.向相邻无墙位置移动花费www,有的位置有权值ai,ja_{i,j}ai,j,这样的点是传送门,可以从一个传送门传到另一个传送门,花费ai,j+ai,j′a ...
- 【离散数学】图论-思维导图
转载请注明出处,作者:x66ccff
- [好题][图论][思维]Tick, Tock Codeforces1758E
Tannhaus, the clockmaker in the town of Winden, makes mysterious clocks that measure time in hh hour ...
- 图论的起源:柯尼斯堡七桥(一笔画)问题与欧拉路径/回路
柯尼斯堡七桥问题 大数学家欧拉一生中的大部分时间在俄国和普鲁士度过.1735年,他提出了著名的柯尼斯堡七桥(Seven Bridges of Königsberg)问题: 柯尼斯堡(今俄罗斯加里宁格勒 ...
- 图论新维度:数据驱动的数学理论,揭秘复杂联系的新工具
来源:AI科技评论本文约3500字,建议阅读5分钟 本文介绍了图论的新维度,利用数据驱动的数学理论去解决更复杂的关系. 用由点和线组成的网络形式对现实世界建模,是自18世纪以来采用的主流方法.但随着大 ...
- 手把手:四色猜想、七桥问题…程序员眼里的图论,了解下?(附大量代码和手绘)...
长文预警!本文作者Vardan Grigoryan是一名后端程序员,但他认为图论(应用数学的一个分支)的思维应该成为程序员必备. 本文从七桥问题引入,将会讲到图论在Airbnb房屋查询.推特推送更新时 ...
- 手把手:四色猜想、七桥问题…程序员眼里的图论,了解下?
大数据文摘作品 编译:张礼俊.王一丁.xixi.修竹.Apricock.惊蛰.Chloe.龙牧雪 长文预警!本文作者Vardan Grigoryan是一名后端程序员,但他认为图论(应用数学的一个分支) ...
- 提高篇 第五部分 动态规划 第4章 状态压缩类动态规划
例1 骑士(Sgu223) 1592:[例 1]国王 信息学奥赛一本通(C++版)在线评测系统 https://blog.csdn.net/guoyangfan_/article/details/82 ...
- 傻瓜教程:手把手教你解决多个应用实例(附代码、手绘图)
来源:大数据文摘 本文约20000字,建议阅读18分钟. 长文预警!本文从七桥问题引入,将会讲到图论在Airbnb房屋查询.推特推送更新时间.Netflix和亚马逊影片/商品个性化推荐.Uber寻找最 ...
最新文章
- poj3648 2-sat 输出任意一组解
- Sculpture ACM/ICPC NWERC 2008 离散化
- 用Session和唯一索引字段实现通用Web分页功能
- 前端学习(3076):vue+element今日头条管理-分支的使用
- python如何下载pandas、时间延长_大pandas,python – 如何在时间表中选择具体时间
- 开发 Windows 8 Bing地图应用(4)
- 从浏览器缓存提取媒体文件
- 怎么用软件测试睡眠质量差怎么办,手机软件可测睡眠质量?
- 学校计算机硬件管理制度,学校规章制度之计算机硬件管理制度.doc
- 阿里云云原生数据湖体系全解读——数据湖构建 数据导入
- 能领取拼多多优惠券的微信小程序
- 用lingo解决钢管下料问题
- 【前端监控系统】埋点数据上报的3种方式
- 计算机函数的输入,向计算机输入复杂的数学函数公式怎样处理?
- GoldenGate—日常管理
- Kafka配置动态SASL_SCRAM认证
- BarTender软件中GS1-128条码如何制作?
- 2018年吉林大学软件学院软件工程学硕复试笔试题回忆
- MobileInfo
- 平台如何限制ip流量_微信视频号如何打造个人IP?三步教你成为流量IP达人