题意:黑书P117 决斗

分析:假设需要判断x是否能赢得整场战斗,把环看成链,x点拆成两个,那么编号为x的人能从中胜出的充分必要条件是他能与自己“相遇”。

这样,在连续几个人的链中,只须考虑头尾两个人能否胜利会师,中间的则不予考虑。

设meet[i][j]记录i和j能相遇,能则为true,否则为false,则问题转化为了是否能找到一个k,使得i 和 k, k和j均能相遇,而 i或j能打败k。

const int M = 202;
int n;
int a[M][M], meet[M][M];void readData(){cin>>n; char c;FOE(i, 1, n){cin.get(c);FOE(j, 1, n){cin.get(c);a[i][j]=c-'0';}}memset(meet,0,sizeof meet);FOR(i, 1, n<<1) meet[i][i+1]=1;
}void d(int i,int j){if(meet[i][j]) return;FOR(k, i+1, j) {int ii=(i-1)%n+1, jj=(j-1)%n+1, kk=(k-1)%n+1;if(a[ii][kk] || a[jj][kk]) {d(i,k); d(k,j);if(meet[i][k]==1&&meet[k][j]==1) {meet[i][j]=1;return;}}}meet[i][j]=-1;
}void solve(){int cnt=0;FOE(i, 1, n) {d(i,i+n);if(meet[i][i+n]==1) cnt++;}cout<<cnt<<endl;FOE(i, 1, n)if(meet[i][i+n]==1)cout<<i<<endl;
}int main(){int t; cin>>t;while(t--) {readData();solve();}return 0;
}

转载于:https://www.cnblogs.com/ts65213/p/3143940.html

SPOJ 196 动态规划相关推荐

  1. UOJ#196. 【ZJOI2016】线段树 概率期望,动态规划

    原文链接www.cnblogs.com/zhouzhendong/p/UOJ196.html 题解 先离散化,设离散化后的值域为 $[0,m]$ . 首先把问题转化一下,变成:对于每一个位置 $i$ ...

  2. 【动态规划 floyd】SPOJ ACPC13

    为什么rzz会把这题放在NOI模拟赛的T2? 题目大意 有一张$n$个点$m$条边的有向图,每条边有权值$w_i$. 定义一个任务$(a_i,b_i,c_i)$是如下一条路径: 最多经过$c_i$条边 ...

  3. spoj453 Sums in a Triangle (tutorial) 动态规划

    题意:给出一个三角矩形,求从顶部到最底部的最大值 思路:动态规划,用 dp(i,j)表示从(0,0)到(i,j)的最大值,有dp(i,j)= max(dp(i-1,j-1) , dp(i-1,j)+m ...

  4. 20200715:动态规划复习day06

    统计全1子矩阵 题目 思路与算法 代码实现 复杂度分析 题目 思路与算法 题意很好理解,但是本题的动态规划不是常规思路的,你需要很好的理解题意并仔细分析状态与转移关系,才能定义正确的dp数组以及其dp ...

  5. 动态规划算法据序偶原理求解0/1背包问题(C++实现)

    可程序根据序偶原理,应用动态规划算法求解. Code   1//说明:本程序有一定代码冗余,若分割为多个函数的形式会使程序简洁明了.   2#include <iostream>   3u ...

  6. 伍六七带你学算法 动态规划 ——不同路径

    力扣 62. 不同路径 难度 中等 一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为"Start" ). 机器人每次只能向下或者向右移动一步.机器人试图达到网格 ...

  7. 由动态规划计算编辑距离引发的思考

    简单介绍 编辑距离算法: https://www.cnblogs.com/BlackStorm/p/5400809.html https://wizardforcel.gitbooks.io/the- ...

  8. LeetCode 10. Regular Expression Matching python特性、动态规划、递归

    前言 本文主要提供三种不同的解法,分别是利用python的特性.动态规划.递归方法解决这个问题 使用python正则属性 import reclass Solution2:# @return a bo ...

  9. 【动态规划】Part1

    1. 硬币找零 题目描述:假设有几种硬币,如1.3.5,并且数量无限.请找出能够组成某个数目的找零所使用最少的硬币数. 分析:   dp [0] = 0            dp [1] = 1 + ...

  10. 2016.4.2 动态规划练习--讲课整理

    1.codevs1742 爬楼梯  时间限制: 1 s  空间限制: 128000 KB  题目等级 : 黄金 Gold 题目描述 Description 小明家外面有一个长长的楼梯,共N阶.小明的腿 ...

最新文章

  1. Linux的一些基本命令与MySQL索引
  2. python快速编程入门课后程序题答案-Python 入门编程题:1~10(答案)
  3. 四因素三水平正交试验表_软件测试|正交试验测试用例设计方法
  4. django-rest-swagger显示接口备注内容
  5. log解析工具 px4_console.log(console.log) = ?
  6. java注释的理解,java注解原理——记录一下自己的理解
  7. java如何编写年月_如何从Java中的日历对象构建天,月,年的列表?
  8. 免费json客户端解析
  9. vue组件弹出框点击显示隐藏
  10. STM32标准库(固件库)分析
  11. myeclipse10 破解
  12. EasyClick 易点云测自动化测试入门到精通
  13. 公寓宽带服务器无响应,学生宿舍公寓网络建设项目需求分析报告文档(8页)-原创力文档...
  14. Halcon二维码扫描算法总结
  15. 支持度、置信度和提升度
  16. 计算机电源功率计算,电源功率怎么计算?
  17. python获取网页图片_python抓取网页中的图片示例
  18. MVC---Android App的设计架构:MVC,MVP,MVVM与架构经验谈
  19. 马克鳗标记及文字图片工具安装步骤mac版本
  20. postgresql 开启大页_Postgresql-11.X 性能优化详解

热门文章

  1. vs2010创建动态库(亲测可行)
  2. window-linux移植
  3. 手把手教你强化学习 (七) 强化学习中的无模型控制
  4. 始于颜值 敬于才华 合于性格 久于善良 终于人品
  5. flask的跨域问题
  6. 红包算法——最大最小值范围
  7. [转]vc6如何设置Unicode字符集
  8. [转]如何撰写学术论文
  9. Codeforces Round #478 Div2 975A 975B 975C 975D
  10. 方法的创建、重载及递归调用