思维 创造条件使一轮比赛之后仍满足1号打败至少一半,并剩下至少一个t'

紫书上的思路很清晰
阶段1,3保证黑色至少消灭1半

#include<cstdio>
#include<vector>
using namespace std; const int maxn = + ;
char table[maxn][maxn]; int main() {
int n;
while(scanf("%d", &n) == ) {
for(int i = ; i <= n; i++) scanf("%s", table[i]+); vector<int> win, lose; // teams that team 1 win/lose against.
for(int i = ; i <= n; i++)
if(table[][i] == '') win.push_back(i);
else lose.push_back(i); int nt = n; while(nt > ) {
vector<int> win2, lose2, final; // phase 3/4 // Phase 1
for(int i = ; i < lose.size(); i++) {
int tlose = lose[i];
bool matched = false;
for(int j = ; j < win.size(); j++) {
int& twin = win[j];
if(twin > && table[twin][tlose] == '') { //尽量通过配对消灭黑
printf("%d %d\n", twin, tlose);
win2.push_back(twin); // go to the next round
twin = ; // not available 本轮已经配对
matched = true;
break;
}
}
if(!matched) final.push_back(tlose); // to phase 3/4
} // Phase 2
bool first = true;
for(int i = ; i < win.size(); i++) {
int twin = win[i];
if(twin > ) {
if(first) { printf("1 %d\n", twin);first = false; }
else final.push_back(twin);
}
} // Phase 3/4
for(int i = ; i < final.size(); i += ) { //3,4阶段可以一起处理
printf("%d %d\n", final[i], final[i+]);
int keep = final[i];
if(table[final[i+]][keep] == '') keep = final[i+];
if(table[][keep] == '') win2.push_back(keep);
else lose2.push_back(keep);
}
win = win2;
lose = lose2;
nt >>= ;
}
}
return ;
}

uva1609 Foul Play的更多相关文章

  1. UVa 1609 (博弈) Foul Play

    姑且把它归类为一道博弈吧,毕竟这也是在找必胜方案. 十分有意思的一道题目,设计一种方案让你支持的1队获胜. 题目给出了两个很重要的条件: 1队能打败至少一半的队伍 对于1队不能打败的黑队,一定存在一个 ...

  2. UVa 1609 - Foul Play

    链接: https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem& ...

  3. UVA 1609 Foul Play 不公平竞赛 (构(luan)造(gao)+递归)

    题意:有n支队伍(n是2的整数幂,2<=n<=4),打淘汰赛,胜者进入下一轮,其中1号队伍能打败至少一半的队伍,对于它不能打败的队伍l,一定存在一支它能够打败的队伍w,使得w能直接打败l, ...

  4. 初涉java库--ArrayList

    我的车就差一个轮子啦,造好轮子,我就飞上天与太阳肩并肩啦,想想都激动.什么你要自己造轮子,是不是傻,商店里不都是别人造好的吗,又好又方便,只需一点money,你没有money,那你只能做个安静的美男子 ...

  5. TJI读书笔记16-异常处理

    TJI读书笔记16-异常处理 概念 基本异常情形 异常的捕获 自定义异常 异常说明 捕获所有异常 栈轨迹 重新抛出异常 Java标准异常 使用finally 异常的限制 构造器 异常的匹配 其他乱七八 ...

  6. Manifesto of the Communist Party

    A spectre is haunting Europe – the spectre of communism. All the powers of old Europe have entered i ...

  7. linux-菜鸟新手命令(1)

    1. ls命令 ls命令是列出目录内容(List Directory Contents)的意思.运行它就是列出文件夹里的内容,可能是文件也可能是文件夹. root@tecmint:~#ls Andro ...

  8. Java编程思想学习(九) 异常处理

    java的异常处理机制可以使程序有极好的容错性,让程序更加的健壮.所谓的异常,就是指的阻止当前方法或作用域继续执行的问题,,当程序运行时出现异常时,系统就会自动生成一个Exception对象来通知程序 ...

  9. 使用 Python 抓取欧洲足球联赛数据

    Web Scraping在大数据时代,一切都要用数据来说话,大数据处理的过程一般需要经过以下的几个步骤    数据的采集和获取    数据的清洗,抽取,变形和装载    数据的分析,探索和预测    ...

随机推荐

  1. lua ffi简介

    本文转自网络 由来 FFI库,是LuaJIT中最重要的一个扩展库.它允许从纯Lua代码调用外部C函数,使用C数据结构.有了它,就不用再像Lua标准math库一样,编写Lua扩展库.把开发者从开发Lua ...

  2. HTTP Status 500 - javax.servlet.ServletException: java.lang.NoClassDefFoundError: junit/framework/Test解决方法

    java代码 package webViewer; import java.io.*; import junit.framework.Test; import com.aspose.words.*; ...

  3. BZOJ[4127] Abs

    题目:http://www.lydsy.com/JudgeOnline/problem.php?id=4127 不算难的样子,才见过此类模型. 首先可以发现每次修改只增不减,那么这$O(n)$的负数最 ...

  4. View Controller Programming Guide for iOS---(七)---Resizing the View Controller’s Views

    Resizing the View Controller’s Views A view controller owns its own view and manages the view’s cont ...

  5. 040--JavaScript

    一.JavaScript的两种引入方式 {#1 直接编写#} <script> alert('hello Galileo') </script> {#2 导入文件#} < ...

  6. Playground Tutorial

    In this step by step tutorial we'll walk through setting up a business network, defining our assets, ...

  7. 洛谷 - P2602 - 数字计数 - 数位dp

    https://www.luogu.org/problemnew/show/P2602 第二道数位dp,因为“数位dp都是模板题”(误),所以是从第一道的基础上面改的. 核心思想就是分类讨论,分不同情 ...

  8. wamp2.5版本配置多端口虚拟主机

    1.保证httpd.conf下 LoadModule php5_module "D:/E/php/wamp/bin/php/php5.5.12/php5apache2_4.dll" ...

  9. hdu 3461 Code Lock 并查集(有点难想到)★★

    #include<stdio.h> #include<math.h> ]; int count; #define mod 1000000007 int find(int x) ...

  10. [BJOI2017]魔法咒语

    Description Chandra 是一个魔法天才. 从一岁时接受火之教会洗礼之后, Chandra 就显示出对火元素无与伦比的亲和力,轻而易举地学会种种晦涩难解的法术.这也多亏 Chandra ...