C. Not Assigning

lianjie

题意:
给定无向图,要求给边赋值,使得每个边权为质数,长度为2的路径边权和也为质数。
思路:

  1. 首先推理得到只有质数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相关推荐

  1. 图论 ---- 思维搜索全图任意位置传送 1520G - To Go Or Not To Go?

    题目链接 题目大意: 给出网格,格子中有墙.向相邻无墙位置移动花费www,有的位置有权值ai,ja_{i,j}ai,j​,这样的点是传送门,可以从一个传送门传到另一个传送门,花费ai,j+ai,j′a ...

  2. 【离散数学】图论-思维导图

    转载请注明出处,作者:x66ccff

  3. [好题][图论][思维]Tick, Tock Codeforces1758E

    Tannhaus, the clockmaker in the town of Winden, makes mysterious clocks that measure time in hh hour ...

  4. 图论的起源:柯尼斯堡七桥(一笔画)问题与欧拉路径/回路

    柯尼斯堡七桥问题 大数学家欧拉一生中的大部分时间在俄国和普鲁士度过.1735年,他提出了著名的柯尼斯堡七桥(Seven Bridges of Königsberg)问题: 柯尼斯堡(今俄罗斯加里宁格勒 ...

  5. 图论新维度:数据驱动的数学理论,揭秘复杂联系的新工具

    来源:AI科技评论本文约3500字,建议阅读5分钟 本文介绍了图论的新维度,利用数据驱动的数学理论去解决更复杂的关系. 用由点和线组成的网络形式对现实世界建模,是自18世纪以来采用的主流方法.但随着大 ...

  6. 手把手:四色猜想、七桥问题…程序员眼里的图论,了解下?(附大量代码和手绘)...

    长文预警!本文作者Vardan Grigoryan是一名后端程序员,但他认为图论(应用数学的一个分支)的思维应该成为程序员必备. 本文从七桥问题引入,将会讲到图论在Airbnb房屋查询.推特推送更新时 ...

  7. 手把手:四色猜想、七桥问题…程序员眼里的图论,了解下?

    大数据文摘作品 编译:张礼俊.王一丁.xixi.修竹.Apricock.惊蛰.Chloe.龙牧雪 长文预警!本文作者Vardan Grigoryan是一名后端程序员,但他认为图论(应用数学的一个分支) ...

  8. 提高篇 第五部分 动态规划 第4章 状态压缩类动态规划

    例1 骑士(Sgu223) 1592:[例 1]国王 信息学奥赛一本通(C++版)在线评测系统 https://blog.csdn.net/guoyangfan_/article/details/82 ...

  9. 傻瓜教程:手把手教你解决多个应用实例(附代码、手绘图)

    来源:大数据文摘 本文约20000字,建议阅读18分钟. 长文预警!本文从七桥问题引入,将会讲到图论在Airbnb房屋查询.推特推送更新时间.Netflix和亚马逊影片/商品个性化推荐.Uber寻找最 ...

最新文章

  1. poj3648 2-sat 输出任意一组解
  2. Sculpture ACM/ICPC NWERC 2008 离散化
  3. 用Session和唯一索引字段实现通用Web分页功能
  4. 前端学习(3076):vue+element今日头条管理-分支的使用
  5. python如何下载pandas、时间延长_大pandas,python – 如何在时间表中选择具体时间
  6. 开发 Windows 8 Bing地图应用(4)
  7. 从浏览器缓存提取媒体文件
  8. 怎么用软件测试睡眠质量差怎么办,手机软件可测睡眠质量?
  9. 学校计算机硬件管理制度,学校规章制度之计算机硬件管理制度.doc
  10. 阿里云云原生数据湖体系全解读——数据湖构建 数据导入
  11. 能领取拼多多优惠券的微信小程序
  12. 用lingo解决钢管下料问题
  13. 【前端监控系统】埋点数据上报的3种方式
  14. 计算机函数的输入,向计算机输入复杂的数学函数公式怎样处理?
  15. GoldenGate—日常管理
  16. Kafka配置动态SASL_SCRAM认证
  17. BarTender软件中GS1-128条码如何制作?
  18. 2018年吉林大学软件学院软件工程学硕复试笔试题回忆
  19. MobileInfo
  20. 平台如何限制ip流量_微信视频号如何打造个人IP?三步教你成为流量IP达人

热门文章

  1. 计算机软件分类系统软件和,计算机化系统软件分类和验证
  2. 经典《像素鸟》游戏,难道你不想自己动手开发一个嘛(附源码免费下载)
  3. oracle 11g函数包缓存,Oracle 11g 的PL/SQL函数结果缓存
  4. 股票接口数据获取方式
  5. 名帖315 沈尹默 行书《兰亭序》书轴
  6. 用正则表达式替换手机号为星号*的写法
  7. HRBUST 1313 火影忍者之~静音
  8. 机械祭天法力无边:C++primer学习(第一章及课后习题)
  9. 按键精灵X学习笔记(二):键盘命令
  10. Web前端HTML使用