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 ---web应用开发-错误处理
一.错误的处理 方法一:Spring Boot 将所有的错误默认映射到/error, 实现ErrorController @Controller @RequestMapping(value = &qu ...
- SCIP,Clp,Gurobi和Cplex安装
SCIP安装 1.在自己的家目录下建立目录scip,并将获得的压缩包考入该文件夹并解压缩 tar -zxvf scipoptsuite-5.0.0.tgz 2.进入目录scipoptsuite-5.0 ...
- unity3d 自己主动文件更新系统
游戏内容变更之后.一般而言不会想让玩家下载整个游戏包又一次安装,由于这样会流失大量玩家.全部游戏更新是必须的. 更新的内容包含 数据.资源.代码. 基本原理: 1.将须要更新的文件打包成AssetBu ...
- js php 数组比較
php 与 javascript 数组除了定义以及 操作上有非常大的差别,还有非常多其他的差别.如今我们就来讨论讨论. 1.大家都知道php比較两个数组是否全相等(值,索引)相等 $a=arra ...
- JavaScript-html标题滚动效果
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- 获取当前最上层controller
- (UIViewController *)topViewController { UIViewController *resultVC; resultVC = [self _topViewContr ...
- 关于安装Ubuntu系统时提示“分配到/的分区/dev/sdax开始于xxxx字节,使用磁盘的最小对齐,这可能造成非常差的性能..."的解决办法
由于Windows系统的VMware出了一些问题,索性就不用VM了,直接装上双系统好了.但是在最后安装时出现错误提示“分配到/的分区/dev/sdc1开始于3584字节,使用磁盘的最小对齐,这可能造成 ...
- 青蛙的约会 poj 1061
青蛙的约会 Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 86640 Accepted: 15232 Descripti ...
- HD-ACM算法专攻系列(3)——Least Common Multiple
题目描述: 源码: /**/ #include"iostream" using namespace std; int MinComMultiple(int n, int m) { ...
- sql中--行处理数据的两种方式
--创建待使用的表格CREATE TABLE Orders ( OrderID INT , CostValue DECIMAL(18, 2) );WITH cte_temp AS ( SELECT 1 ...