题意:略(忙着准备文化课。。。明天期中考啊。。。。

思路:

正解就是染色,2-sat搞;

AC代码(虽然是错误的。。。数据水(过踏马的也行啊,起码打脸他啊!)

4 3 1 0

1 2

2 3

3 4

4

这个就挂了;

#include <bits/stdc++.h>
using namespace std;
typedef long long LL;
const int MAX=1010;
const double q=(1+sqrt(5.0))/2.0;
const double eps=1e-100;
int n,m;
int v[MAX];
int a[MAX][MAX];
int main()
{int t,i,j;int x,y;while(~scanf("%d%d%d%d",&n,&m,&x,&y)){int flag=0;int b,c;memset(a,0,sizeof(a));memset(v,-1,sizeof(v));for(i=0;i<m;i++){scanf("%d%d",&b,&c);a[b][c]=a[c][b]=1;}for(i=1;i<=x;i++){scanf("%d",&b);for(j=0;j<n;j++){if(a[b][j]){if(v[j]==1)flag=1;v[j]=0;}}v[b]=1;}for(i=1;i<=y;i++){scanf("%d",&b);for(j=0;j<n;j++){if(a[b][j]){if(v[j]==0)flag=1;v[j]=1;}}v[b]=0;}for(i=1;i<=n;i++){for(j=1;j<=n;j++){if(a[i][j]){if(v[i]==-1&&v[j]==-1){v[i]=1;v[j]=0;}else if(v[i]!=-1&&v[j]!=-1){if(v[i]+v[j]!=1)flag=1;}else if(v[i]!=-1){v[j]=1-v[i];}elsev[i]=1-v[j];}}}for(i=1;i<=n;i++){
//            printf("%d ",v[i]);if(v[i]==-1)flag=1;}
//        puts("");if(flag)printf("NO\n");elseprintf("YES\n");}return 0;
}

贴份应该正确的(escape

#include<bits/stdc++.h>
#include <cstdio>
#include <algorithm>
using namespace std;
typedef long long ll;
typedef pair<int,int> pll;
const int N=5*1e4+1000;
#define eps 1e-4
int co[10005];
int vis[10005];
vector<int>g[10005];
int dfs(int u)
{int sz=g[u].size();for(int i=0; i<sz; i++){int v=g[u][i];if(!co[v]){co[v]=!co[u];if(!dfs(v))return 0;}else if(co[u]==co[v]){return 0;}}return 1;
}
int main()
{int n,m,x,y;while(cin>>n>>m>>x>>y){for(int i=0; i<10005; i++)g[i].clear();if(n==1){puts("NO");continue;}for(int i=0; i<m; i++){int xx,yy;scanf("%d%d",&xx,&yy);g[xx].push_back(yy);}memset(co,0,sizeof(co));for(int i=0; i<x; i++){int xx;scanf("%d",&xx);co[xx]=1;
//            int sz=g[xx].size();
//            for(int i=0; i<sz; i++)
//            {
//                int v=g[xx][i];
//                co[v]=!co[xx];
//            }}for(int i=0; i<y; i++){int xx;scanf("%d",&xx);co[xx]=0;
//            int sz=g[xx].size();
//            for(int i=0; i<sz; i++)
//            {
//                int v=g[xx][i];
//                co[v]=!co[xx];
//            }}if(x==0&&y==0)puts("NO");else{int flag=1;for(int i=1; i<=n; i++)if(!dfs(i))flag=0;if(flag)puts("YES");elseputs("NO");}}return 0;
}

加强后的瞎搞(求hack

#include <bits/stdc++.h>
using namespace std;
typedef long long LL;
const int MAX=1010;
const double q=(1+sqrt(5.0))/2.0;
const double eps=1e-100;
int n,m;
int v[MAX];
int a[MAX][MAX];
int main()
{int t,i,j,k;int x,y;while(~scanf("%d%d%d%d",&n,&m,&x,&y)){int flag=0;int b,c;memset(a,0,sizeof(a));memset(v,-1,sizeof(v));for(i=0; i<m; i++){scanf("%d%d",&b,&c);a[b][c]=a[c][b]=1;}for(i=1; i<=x; i++){scanf("%d",&b);for(j=0; j<n; j++){if(a[b][j]){if(v[j]==1)flag=1;v[j]=0;}}v[b]=1;}for(i=1; i<=y; i++){scanf("%d",&b);for(j=0; j<n; j++){if(a[b][j]){if(v[j]==0)flag=1;v[j]=1;}}v[b]=0;}for(k=0; k<2; k++){for(i=1; i<=n; i++){for(j=1; j<=n; j++){if(a[i][j]){if(v[i]==-1&&v[j]==-1&&k){v[i]=1;v[j]=0;}else if(v[i]!=-1&&v[j]!=-1){if(v[i]+v[j]!=1)flag=1;}else if(v[i]!=-1){v[j]=1-v[i];}else if(v[j]!=-1)v[i]=1-v[j];}}}}for(i=1; i<=n; i++){
//            printf("%d ",v[i]);if(v[i]==-1)flag=1;}
//        puts("");if(flag)printf("NO\n");elseprintf("YES\n");}return 0;
}
/*
6 5 0 0
1 2
2 3
3 4
3 1
5 66 5 0 0
1 2
2 3
3 4
4 1
5 64 3 1 0
1 2
2 3
3 4
4*/

转载于:https://www.cnblogs.com/keyboarder-zsq/p/6216749.html

HDU5971【瞎搞】相关推荐

  1. [JZOJ5281]钦点题解--瞎搞+链表

    [JZOJ5281]钦点题解--瞎搞+链表 题目链接 于 暴 力 过 分析 第一眼: 模拟美滋滋?! 然后数据范围...不太对 naiive模拟30pts 然后你交换字符串指针60pts 然后发现可以 ...

  2. android重置系统,安卓手机越用越卡,恢复出厂设置真有用?别瞎搞,看完就明白了!...

    安卓手机越用越卡,恢复出厂设置真有用?别瞎搞,看完就明白了! 现在手机的价格逐渐的开始上升,一部好一点的手机价格还是比较贵的,所以很多人想要节省更多的换机支出,都会想要购买到一款可以使用的比较久的手机 ...

  3. HDU 5600(瞎搞)

    第一场Bestcoder居然爆零..果然是too naive..小聪明全部直接输出"YES"过了pretest,结果被叉也是&%$% 找到规律传递下就好.后来看官方题解感觉 ...

  4. HDU 4923 Room and Moor(瞎搞题)

    瞎搞题啊.找出1 1 0 0这样的序列,然后存起来,这样的情况下最好的选择是1的个数除以这段的总和. 然后从前向后扫一遍.变扫边进行合并.每次合并.合并的是他的前驱.这样到最后从t-1找出的那条链就是 ...

  5. 别再瞎搞数仓了!BAT内部大神:数据仓库不是谁都可以建的

    在我没有进互联网之前,我一直以为数据仓库是所有企业进行数据资产管理的必备工作,但直到我去了很多家企业搞数据之后才发现,原来并不是所有的企业都适合做数据仓库,更不要说数据中台了. 很多企业现在做数据仓库 ...

  6. Wannafly交流赛1: C. 腰带图(瞎搞)

    链接:https://www.nowcoder.com/acm/contest/69/C 来源:牛客网 题目描述 一个n个点m条边的无向图,它若满足以下性质,我们就称它为腰带图: 1.n为>=6 ...

  7. 我的瞎搞开发工具集以及对一些工具的比较

    本文的目的是作为一个记录,不引战,同时为有同样瞎搞爱好者提供一个学习思路--尽量全部推荐和使用免费开源工具,减少版权纠纷,降低学习成本,大概算有用吧 我的技术栈: 实际上有很多并不是很熟,请酌情参考 ...

  8. 使用jsdelivr时不要瞎搞

    8月15日jsdelivr在官网更新了使用条款.虽然不清楚具体更新了哪些内容,但是注意到这几个处被很多人忽略了.瞎搞很容易被jsdelivr阻断连接.以下是需要注意的这几个处. 4. Prohibit ...

  9. ubuntu--基础环境瞎搞集合

    安装ubuntu系统后有很多东西需要自己瞎搞一下,这里把一些瞎搞的过程记录在这里,方便以后重新装系统后重新配置. 一.安装. 可以在windows下制作启动盘(软碟通),然后开机u盘启动即可安装,预留 ...

最新文章

  1. 后台开发实用书籍--后台开发:核心技术与应用实践
  2. .NET多线程总结和实例介绍
  3. 素描java字母_进行Java基本GUI设计需要用到的包是
  4. go语言:函数参数传递详解
  5. vscode配置c++11
  6. linux cpu load命令,Linux性能检测常用的10个基本命令
  7. Python2.7.3 学习——准备开发环境
  8. 【技术白皮书】第四章:信息抽取技术产业应用现状及案例(上)
  9. 信源编码程序设计实验C语言实现,霍夫曼信源编码实验报告.docx
  10. 宅急送BOS系统软硬件集成方案goldengate(一)
  11. 在WIN7正常使用老版本工商银行华虹U盾驱动解决办法
  12. idea突然很卡解决办法
  13. 电磁场与电磁波(6)——静电场的边值问题:唯一性定理
  14. Python浪漫520表白代码
  15. Idea相关操作以及相关问题
  16. puzzle(0122)网格一笔画
  17. import导包方法和路径问题和init方法调用流程
  18. 腾讯云购买服务器和域名后要怎么配置访问
  19. 热门免费的:YesPlayMusic Mac(高颜值网易云音乐第三方播放器)
  20. 多商户机器人,自助注册在线客服系统,im即时通讯聊天

热门文章

  1. Scrum meeting报告
  2. php CI 实战教程:如何去掉index.php目录
  3. 浅谈开发中的MVVM模式及与MVP和MVC的区别
  4. 驱动开发之 设备读写方式:缓冲区方式
  5. 好雨云帮如何对接Git Server
  6. C#json数据的序列化和反序列化(将数据转换为对象或对象集合)
  7. 用自己的ID在appstore中更新app-黑苹果之路
  8. QTP和WinRunner区别
  9. LVS+Keepalived负载均衡方式总结
  10. 关系的三类完整性约束