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

哪个网站有律师做的案件网站写好了怎么做后台管理

哪个网站有律师做的案件,网站写好了怎么做后台管理,企业网站404页面设计,一个网站怎么做软件题目描述 : CC 在梦中遇到了一个美丽序列,但是醒来已经记不清具体数值了。但幸运的是他还记得些某两个数的异或值,和某些具体值。需要你来帮助他完成序列回忆。 即现在有一个长度为 n 的数列 a1​ , a2​ , a3​ an​,但是不知道具体数值,…

题目描述 :

CC 在梦中遇到了一个美丽序列,但是醒来已经记不清具体数值了。但幸运的是他还记得些某两个数的异或值,和某些具体值。需要你来帮助他完成序列回忆。  

即现在有一个长度为 n 的数列 a1​ , a2​ , a3​ ··· an​,但是不知道具体数值,现在有 q 条信息,每条信息只会是以下 2 种之一。  
   1 : U x y w  表示 ax​ ^ ay​ = w。  
   2 : S x y      表示 ax​ = y。  

输入格式

第一行包含 2 个整数 n、q。  (1≤n≤4×104,1≤q≤4×105)
第二到 q+1 行每行给出一条信息。  (1≤x,y≤n,1≤ai​≤109)

输出格式 :

对于每条信息,若与前面能得出的信息发生矛盾则忽略本条信息。最后只需输出数列 a,如果不能确定唯一的数列则输出sad

输入输出样例:

输入样例1

5 6
U 1 3 6
U 3 5 2
U 1 5 5
S 2 4
S 1 5
U 1 4 7

输出样例1

5 4 3 2 1

输入样例2

5 4
U 1 3 6
U 3 5 2
U 1 2 5
U 1 4 1

输出样例2

sad

样例解释

对于样例一,最开始每个数都不知道  
第一条信息 a1​ ^ a3​ = 6  
第二条信息 a3​ ^ a5​ = 2  
第三条信息 a1​ ^ a5​ = 5  (与前面能得出的信息矛盾,忽略该信息)  
第四条信息 a2​ = 4  
第五条信息 a1​ = 5  
第五条信息 a1​ ^ a4​  = 7  
最终可以得出 a 数列为 5 4 3 2 1  

对于样例二,可证明不能确定唯一的数列。

#include<bits/stdc++.h>
using namespace std;
const int mod=1e9+7;
int dx[4]={1,-1,0,0};
int dy[4]={0,0,1,-1};
#define int long long
typedef pair<int,int> pii;const int N=400010;int n,q;
int cnt[N],p[N],ans[N];
vector<pii>g[N];
int st[N];int find(int x)
{if(p[x]!=x)p[x]=find(p[x]);return p[x];
}void dfs(int x,int fa)
{st[x]=1;for(auto [a,b]:g[x]){if(a==fa)continue;ans[a]=ans[x]^b;dfs(a,x);}
}
void solve()
{cin>>n>>q;for(int i=1;i<=n;i++){ans[i]=-1;p[i]=i;}while(q--){char op;cin>>op;if(op=='U'){int a,b,c;cin>>a>>b>>c;int aa=find(a),bb=find(b);if(aa!=bb&&cnt[aa]+cnt[bb]<=1){p[aa]=bb;cnt[bb]+=cnt[aa];g[a].push_back({b,c});g[b].push_back({a,c});}}else{int a,b;cin>>a>>b;int aa=find(a);if(cnt[aa]==0){cnt[aa]++;ans[a]=b;}}}for(int i=1;i<=n;i++){if(ans[i]!=-1&&st[i]==0){dfs(i,-1);}}for(int i=1;i<=n;i++){if(ans[i]==-1){cout<<"sad"<<endl;return;}}for(int i=1;i<=n;i++){cout<<ans[i]<<" ";}
}
signed main()
{ int good_luck_to_you;ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);good_luck_to_you=1;// cin>>good_luck_to_you;while(good_luck_to_you--){solve();}
}

思路:比赛的时候想着应该是dfs一类的,但是不能排除冲突条件,所以不知道怎么写。

正确思路是并查集+dfs,因为如果a^b=c,那么a和b一定是有关系,我们就可以想到他们是一个连通块,而且只要这个连通块里面有一个确定的值,其他的数就都可以确定,所以不管冲不冲突,对于a^b=c我们只需要判断a和b是否再同一个连通块中并且确定值必须<=1,对于a=b,我们就判断a所在的连通块是否已经有了一个确定的值,如果没有,我们就把下标为a的值赋成b并且a所在的连通块就已经有了值 。

我们用dfs来填充最后的值,加入st数组判断这个下标的数是否已经被填过,最后判断一下数组中是否有-1,如果有,则按照题目输出即可。

 

http://www.dtcms.com/wzjs/567154.html

相关文章:

  • 北京网站建设公司哪个好中国企业网站模板
  • 做网站应该做到那几点网站开发员纵向发展
  • 单页网站对攻击的好处店铺logo设计免费
  • 如何把网站上传到凡科wordpress鼠标停留
  • 福州企业建站服务公司宣传页的样板
  • vue.js2.5 pc网站开发进货渠道网
  • 长沙企业建网站上海房产网签
  • 变更备案网站可以访问吗wordpress 半透明
  • 做去自己的网站首页wordpress 中文tag标签 404
  • 网站管理员密码nas 可以做网站吗
  • 东台建设局网站死链接对网站的危害有哪些
  • 用asp做网站需要准备什么wordpress qqword
  • 怎么让公司网站显示官网纯字母logo设计
  • 河北省建设安全监督站的网站网页设计与制作实训报告心得体会2000字
  • jsp网站开发书籍推荐做网站的属于什么工作类型
  • 湘潭网站建设电话工作的意义
  • 永久免费建站空间为企业做好服务优化营商环境
  • 手表网网站在线音乐网站开发教程
  • 苏州网站怎么做wordpress盲注
  • 给别人做网站被诉侵权建设工程分包合同
  • asp网站静态化夫唯老师seo
  • 外贸网站建设介绍建筑专业人才招聘网
  • 免费网站建设推销一个网站开发
  • 临淄网站建设价格网站备案为什么要关闭
  • 郑州网站建设报价表长春seo建站
  • 合肥市住房和建设局网站设计网站可能遇到的问题
  • 公司注册网站需要提供什么文件上海市装修公司
  • 手机网站制作参考资料文献顺企网下载
  • 华北冶建工程建设有限公司网站wordpress哪里查看id
  • 企业网站phpcms卧室室内装修设计网站