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. ...
随机推荐
- session 超时跳转登陆页面
/** * session超时跳转登陆页面 * @author zhangdong * 2017年10月24日 */ @Aspect @Component public class SessionTi ...
- Linux的硬链接、软连接与拷贝
Linux链接分两种,一种被称为硬链接(Hard Link),另一种被称为符号链接(Symbolic Link).硬链接:创建一个与原文件任何信息都相同的目标文件(文件名可能不同,自由设定).硬连接的 ...
- ubuntu下不用拔盘就可以重新识别usb设备
#!/bin/sh # Usage: ./resetusb ARGUMENT(The keyword for your usb device) var1=$ keyword=${var1:=Stora ...
- 2015百度之星初赛2 1005 序列变换(LIS变形)
LIS(非严格):首先我想到了LIS.然而总认为有点不正确:每一个数先减去它的下标.防止以下的情况发生:(转载) 3 增加序列是1,2,2,2,3,这样求上升子序列是3.也就是要改动2个,可是中间的两 ...
- iOS开发实践之GET和POST请求
GET和POST请求是HTTP请求方式中最最为常见的. 在说请求方式之前先熟悉HTTP的通信过程: 请求 1.请求行 : 请求方法.请求路径.HTTP协议的版本号 GET /MJServer/reso ...
- php7安装memcache 和 memcached 扩展
php7安装memcache 和 memcached 扩展 标签(空格分隔): php memcache和memcached区别 memcache:http://pecl.php.net/packag ...
- Android开发日志统一管理
在开发中,我们通常要对日志的输出做统一管理,下面就为大家推荐一个日志输出类,在开发阶段只需将DEBUG常量设为true,生产环境将DEBUG设为false即可控制日志的输出.啥都不说了,需要的朋友直接 ...
- Node+Deployd+MongoDB安装问题
首先:祝大家新年快乐!然后:最近在看一本angular教程,教程里面需要装一些软件(node,deployd,mongodb),当三个装完后在doc命令行下运行项目时出现问题了 mongodb已经按照 ...
- 浅谈Sass与Less区别、优缺点
Sass是一种动态样式语言,Sass语法的缩排语法,比Css比多出很多功能,如变量,嵌套,运算,继承,颜色处理,函数等,易于阅读.Cass的安装需要安装Ruby环境,是服务器端处理的,Less是需要引 ...
- POJ 3567 Cactus Reloaded(仙人掌直径)
题意 裸的仙人掌直径. 题解 先考虑基环树的直径:先算出每颗“树”的直径,再在环上跑DP 再考虑仙人掌的直径:把每个基环树缩成一条边,边长为基环树深度. #include<iostream> ...