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

网站建设过程小结微指数查询入口

网站建设过程小结,微指数查询入口,一个网站开发团队要什么人,上海网站建设备案号Problem - D - Codeforces Theofanis开始玩名为“Among them”的新网络游戏。然而,他总是和塞浦路斯球员一起踢球,他们都有一个相同的名字:“安德烈亚斯”(塞浦路斯最常见的名字)。在每个游戏中,Theofanis和n个其他玩家一起玩。因为它们都有相…

Problem - D - Codeforces

 Theofanis开始玩名为“Among them”的新网络游戏。然而,他总是和塞浦路斯球员一起踢球,他们都有一个相同的名字:“安德烈亚斯”(塞浦路斯最常见的名字)。在每个游戏中,Theofanis和n个其他玩家一起玩。因为它们都有相同的名字,所以编号从1到n。玩家在聊天中写下了m条评论。注释的结构是"i j c",其中i和j是两个不同的整数,c是一个字符串(1 < i, j < n;我j;C不是冒名顶替者就是船员)。注释的意思是玩家i说玩家j扮演角色c。冒名顶替者总是撒谎,而船员总是说真话。帮助Theofanis找出所有其他塞浦路斯玩家中冒名顶替者的最大可能数量,或者确定评论彼此矛盾(参见注释中的进一步解释)。注意,每个玩家只有一个角色:冒名顶替者或船员。输入第一行包含一个整数t (1 < t < 104)——测试用例的数量。下面是每个测试用例的描述。每个测试用例的第一行包含两个整数n和m (1 < n <2-105;0 <m <5-105) -除Theofanis之外的玩家数量和评论数量。接下来的m行每一行都包含一个由结构为“i j c”的玩家所做的评论,其中i和j是两个不同的整数,c是一个字符串(1 < i, j≤n;I # j;C不是冒名顶替者就是船员)。同一对(i, j)可以有多个注释。保证所有n的和不超过2-105,所有m的和不超过5 -105。输出对于每个测试用例,打印冒名顶替者的最大可能数量的整数。如果注释相互矛盾,则打印-1。

Example

input

Copy

5
3 2
1 2 imposter
2 3 crewmate
5 4
1 3 crewmate
2 5 crewmate
2 4 imposter
3 4 imposter
2 2
1 2 imposter
2 1 crewmate
3 5
1 2 imposter
1 2 imposter
3 2 crewmate
3 2 crewmate
1 3 imposter
5 0

output

Copy

2
4
-1
2
5

题解:
首先我们应该知道一个很重要的规律,如果c是crewmate(后面用1代表),a和b身份相同,否则身份不同

假设a -> b  1

1.a = 1,b = 1

2.a = 0,b = 0

假设a- >b 0

1.a = 1,b = 0

2.a = 0,b = 1

根据这个性质,我们可以建造一个二分图

如果两点身份不同,直接连边

如果两点身份相同,建造一个虚点,并且两边

最后利用染色法,看构建的二分图是否有冲突即可

#include<iostream>
#include<string>
#include<vector>
#include<cstring>
#include<algorithm>
#include<queue>
#include<map>
using namespace std;
typedef long long ll;
#define int long long
typedef pair<int,int> PII;
int col[1000060];
vector <int> p[1000060];
int ca,cb;
int n,m; 
int dfs(int x,int c)
{col[x] = c;if(x <= n){if(c == 1)ca++;elsecb++;}for(auto ne:p[x]){if(!col[ne]){if(!dfs(ne,3 - c))return 0;}else if(col[ne] == col[x])return 0;}return  1;
}
void solve()
{cin >> n >> m;int ans = 0;for(int i = 1;i <= n + m;i++){p[i].clear();col[i] = 0;}int n1 = n;for(int i = 1;i <= m;i++){int a,b;string c;cin >> a >> b >> c;if(c[0] == 'i'){p[a].push_back(b);p[b].push_back(a);}else{++n1;p[a].push_back(n1);p[n1].push_back(a);p[b].push_back(n1);p[n1].push_back(b);}}for(int i = 1;i <= n1;i++){if(col[i])continue;ca = 0,cb = 0;if(dfs(i,1)){ans += max(ca,cb);}else{cout <<"-1\n";return ;}}cout << ans <<"\n";}
signed main() 
{
//	ios::sync_with_stdio(0);
//	cin.tie(0);cout.tie(0);int t = 1;cin >> t;
//    scanf("%lld",&t);while (t--) {solve();}return 0;
}

http://www.mnyf.cn/news/48226.html

相关文章:

  • 温州建站方案关键词排名靠前
  • 叶榭做网站域名收录提交入口
  • 聊城网站案例成都网站推广哪家专业
  • 客户网站建设确认书搜索引擎优化seo价位
  • 网站怎么做域名实名认证吗关键词搜索排名工具
  • 广州平台网站建设百度站长工具数据提交
  • ico网站进行推广互联网网络推广
  • 网站建设情况的自查报告网站排名提高
  • 做网站需要的参考文献手机优化软件哪个好用
  • 网站内部seo网站发布
  • 常规网站建设内容网络营销服务
  • 日照东港城市建设投资有限公司网站怎么做手工
  • 代备案域名30元seo属于运营还是技术
  • 河北平台网站建设价位全网推广软件
  • 怎样php网站建设网络营销就业方向和前景
  • 网站制作及排名优化武汉seo排名扣费
  • 湖南省网站备案seo培训讲师招聘
  • javascript特效大全seo排名优化收费
  • 无锡住房建设网站seo课程在哪培训好
  • 申请备案 关网站珠海企业网站建设
  • 保定干洗机做网站直通车关键词优化口诀
  • 找人做网站需要先了解哪些要点semicircle
  • 设计素材网站照片武汉百度推广电话
  • 网站建设的公司系统规划手机百度app下载
  • 网站设计规划书例子百度招聘2022年最新招聘
  • 用html5做的旅游网站代码百度关键词排名提升工具
  • 辽宁省住房和城乡建设部网站主页百度商家版下载
  • 优化一个网站可以做多少关键词免费网站统计代码
  • 知名的网站建设公司电商网站首页
  • 在日本网站做推广渠道发文章用哪个平台比较好