Aizu - 2555 Everlasting Zero 模拟
题意:学习技能,每个技能有不同的要求,问能否学习全部特殊技能
思路:枚举每两个技能,得到他们的先后学习关系,如果两个都不能先学的话就是No了,如果A>B,B>C,但是并没有A>C那么这种情况也是不允许的了,我过的也是比较惊险。
#pragma comment(linker, "/STACK:1000000000")
#include <bits/stdc++.h>
#define LL long long
#define INF 0x3f3f3f3f
#define IN freopen("in.txt","r",stdin);
#define OUT freopen("out.txt", "w", stdout);
using namespace std;
#define MAXN 105
#define MAXM 25005 bool dayu[MAXN][MAXN], vis[MAXN][MAXN][MAXN];
int in[MAXN];
queue<int> Q;
int gao[MAXN][MAXN], di[MAXN][MAXN];
int main()
{
//IN;
int m, n, k, x, y;
char s[];
scanf("%d%d", &m, &n);
memset(di, , sizeof(di));
memset(gao, INF, sizeof(gao));
for(int i = ; i <= m; i++){
scanf("%d", &k);
for(int j = ; j <= k; j++){
scanf("%d%s%d", &x, &s, &y);
if(s[] == '<'){
gao[i][x] = min(gao[i][x], y);
}
else{
di[i][x] = max(di[i][x], y);
}
}
}
for(int i = ; i <= m; i++){
for(int j = ; j <= n; j++){
if(di[i][j] > gao[i][j]){
printf("No\n");
return ;
}
}
}
memset(dayu, , sizeof(dayu));
memset(in, , sizeof(in));
for(int i = ; i <= m; i++){
for(int j = ; j <= m; j++){
if(i == j) continue;
bool flag = false;
for(int k = ; k <= n; k++){
if(di[i][k] > gao[j][k]){
flag = true;
break;
}
}
if(!flag){
dayu[i][j] = true;
in[j]++;
}
}
}
for(int i = ; i <= m; i++){
for(int j = ; j <= m; j++){
for(int k = ; k <= m; k++){
if(i == j || i == k || j == k) continue;
if(dayu[i][j] && dayu[i][k] && dayu[k][j]){
vis[i][j][k] = true;
vis[i][k][j] = true;
vis[j][i][k] = true;
vis[j][k][i] = true;
vis[k][i][j] = true;
vis[k][j][i] = true;
}
}
}
}
for(int i = ; i <= m; i++){
for(int j = ; j <= m; j++){
for(int k = ; k <= m; k++){
if(i == j || i == k || j == k) continue;
if(vis[i][j][k]) continue;
printf("No\n");
return ;
}
}
}
for(int i = ; i <= m; i++){
for(int j = ; j <= m; j++){
if(i == j) continue;
if(!dayu[i][j] && !dayu[j][i]){
printf("No\n");
return ;
}
}
}
printf("Yes\n");
return ;
/* memset(vis, 0, sizeof(vis));
while(!Q.empty()){
Q.pop();
}
for(int i = 1; i <= m; i++){
bool flag = false;
for(int j = 1; j <= m; j++){
if(dayu[i][j] || i == j) continue;
flag = true;
break;
}
if(!flag){
Q.push(i);
vis[i] = true;
}
}
int ans = 0; while(!Q.empty()){
int s = Q.front();
vis[s] = true;
ans++;
Q.pop();
for(int i = 1; i <= m; i++){
if(dayu[s][i]){
in[i]--;
if(in[i] == 0 && !vis[i]){
Q.push(i);
}
}
}
}
if(ans == m){
printf("Yes\n");
}
else{
printf("No\n");
}*/
return ;
}
Aizu - 2555 Everlasting Zero 模拟的更多相关文章
- HDU 2555 陷阱(模拟,结构体数组)
这道题目意思很明白,有不确定的数据沙包和陷阱,还要排序···那就必须要用结构体+数组 /* 在地面上有N 个大小不等的长方形陷阱,每个陷阱的周长各不相同,每个参赛者都有一个沙包,闭上眼睛把它扔向地面, ...
- bzoj AC倒序
Search GO 说明:输入题号直接进入相应题目,如需搜索含数字的题目,请在关键词前加单引号 Problem ID Title Source AC Submit Y 1000 A+B Problem ...
- 2555: SubString[LCT+SAM]
2555: SubString Time Limit: 30 Sec Memory Limit: 512 MB Submit: 2601 Solved: 780 [Submit][Status][ ...
- 【BZOJ 2555】 2555: SubString (SAM+LCT)
2555: SubString Time Limit: 30 Sec Memory Limit: 512 MBSubmit: 2548 Solved: 762 Description 懒得写背景了 ...
- 【BZOJ】2555: SubString(后缀自动机)
http://www.lydsy.com/JudgeOnline/problem.php?id=2555 学到了如何快速维护right值orz (不过这仍然是暴力维护,可以卡到O(n) 首先我们在加一 ...
- App开发:模拟服务器数据接口 - MockApi
为了方便app开发过程中,不受服务器接口的限制,便于客户端功能的快速测试,可以在客户端实现一个模拟服务器数据接口的MockApi模块.本篇文章就尝试为使用gradle的android项目设计实现Moc ...
- 故障重现, JAVA进程内存不够时突然挂掉模拟
背景,服务器上的一个JAVA服务进程突然挂掉,查看产生了崩溃日志,如下: # Set larger code cache with -XX:ReservedCodeCacheSize= # This ...
- Python 爬虫模拟登陆知乎
在之前写过一篇使用python爬虫爬取电影天堂资源的博客,重点是如何解析页面和提高爬虫的效率.由于电影天堂上的资源获取权限是所有人都一样的,所以不需要进行登录验证操作,写完那篇文章后又花了些时间研究了 ...
- HTML 事件(四) 模拟事件操作
本篇主要介绍HTML DOM中事件的模拟操作. 其他事件文章 1. HTML 事件(一) 事件的介绍 2. HTML 事件(二) 事件的注册与注销 3. HTML 事件(三) 事件流与事件委托 4. ...
随机推荐
- Spring Boot基础教程》 第1节工具的安装和使用
<Spring Boot基础教程> 第1节 工具的安装和使用 Spring Boot文档 https://qbgbook.gitbooks.io/spring-boot-reference ...
- Linux常用软件tree,autojump,lrzsz安装
tree安装 1.获取压缩文件 wget http://mama.indstate.edu/users/ice/tree/src/tree-1.7.0.tgz 2.解压缩 tar -zxvf tree ...
- 紫书 习题 11-1 UVa 821 (Floyd)
水题, Floyd一遍就完了. #include<cstdio> #include<algorithm> #define REP(i, a, b) for(int i = (a ...
- 2019年北航OO第二单元(多线程电梯任务)总结
一.三次作业总结 1. 说在前面 对于这次的这三次电梯作业,我采用了和几乎所有人都不同的架构:将每个人当作一个线程.这样做有一定的好处:它使得整个问题的建模更加自然,并且在后期人员调度变得复杂时,可以 ...
- 题解 P3372 【【模板】线段树1 】(zkw)
看了一下题解里的zkw线段树,感觉讲的不是很清楚啊(可能有清楚的但是我没翻到,望大佬勿怪). 决定自己写一篇...希望大家能看明白... zkw线段树是一种优秀的非递归线段树,速度比普通线段树快两道三 ...
- [转载]不唐突的JavaScript的七条准则
经过多年的开发.教学和编写不唐突的JavaScript, 我发现了下面的一些准则.我希望它们可以帮助你对“为什么这样设计和执行JavaScript比较好”有一点理解.这些规则曾经帮助我更快地交付产品, ...
- [Transducer] Create a Sequence Helper to Transduce Without Changing Collection Types
A frequent use case when transducing is to apply a transformation to items without changing the type ...
- JAVA:从public static void main(String args[])開始
我们都知道当你要执行一个JAVA文件的时候必需要有一个main函数. 这是为什么呢? 跟C语言的道理一样,当你执行一个文件的时候.你必需要有一个入口函数或者入口地址,在C里面是main函数.相同的在J ...
- USACO 1.2 Palindromic Squares (进制转换,回文)
/* ID:twd30651 PROG:palsquare LANG:C++ */ #include<iostream> #include<fstream> #include& ...
- BZOJ 1174: [Balkan2007]Toponyms
Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 735 Solved: 102[Submit][Status][Discuss] Descriptio ...