SPOJ 196 动态规划
题意:黑书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 动态规划相关推荐
- UOJ#196. 【ZJOI2016】线段树 概率期望,动态规划
原文链接www.cnblogs.com/zhouzhendong/p/UOJ196.html 题解 先离散化,设离散化后的值域为 $[0,m]$ . 首先把问题转化一下,变成:对于每一个位置 $i$ ...
- 【动态规划 floyd】SPOJ ACPC13
为什么rzz会把这题放在NOI模拟赛的T2? 题目大意 有一张$n$个点$m$条边的有向图,每条边有权值$w_i$. 定义一个任务$(a_i,b_i,c_i)$是如下一条路径: 最多经过$c_i$条边 ...
- 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 ...
- 20200715:动态规划复习day06
统计全1子矩阵 题目 思路与算法 代码实现 复杂度分析 题目 思路与算法 题意很好理解,但是本题的动态规划不是常规思路的,你需要很好的理解题意并仔细分析状态与转移关系,才能定义正确的dp数组以及其dp ...
- 动态规划算法据序偶原理求解0/1背包问题(C++实现)
可程序根据序偶原理,应用动态规划算法求解. Code 1//说明:本程序有一定代码冗余,若分割为多个函数的形式会使程序简洁明了. 2#include <iostream> 3u ...
- 伍六七带你学算法 动态规划 ——不同路径
力扣 62. 不同路径 难度 中等 一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为"Start" ). 机器人每次只能向下或者向右移动一步.机器人试图达到网格 ...
- 由动态规划计算编辑距离引发的思考
简单介绍 编辑距离算法: https://www.cnblogs.com/BlackStorm/p/5400809.html https://wizardforcel.gitbooks.io/the- ...
- LeetCode 10. Regular Expression Matching python特性、动态规划、递归
前言 本文主要提供三种不同的解法,分别是利用python的特性.动态规划.递归方法解决这个问题 使用python正则属性 import reclass Solution2:# @return a bo ...
- 【动态规划】Part1
1. 硬币找零 题目描述:假设有几种硬币,如1.3.5,并且数量无限.请找出能够组成某个数目的找零所使用最少的硬币数. 分析: dp [0] = 0 dp [1] = 1 + ...
- 2016.4.2 动态规划练习--讲课整理
1.codevs1742 爬楼梯 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 黄金 Gold 题目描述 Description 小明家外面有一个长长的楼梯,共N阶.小明的腿 ...
最新文章
- Linux的一些基本命令与MySQL索引
- python快速编程入门课后程序题答案-Python 入门编程题:1~10(答案)
- 四因素三水平正交试验表_软件测试|正交试验测试用例设计方法
- django-rest-swagger显示接口备注内容
- log解析工具 px4_console.log(console.log) = ?
- java注释的理解,java注解原理——记录一下自己的理解
- java如何编写年月_如何从Java中的日历对象构建天,月,年的列表?
- 免费json客户端解析
- vue组件弹出框点击显示隐藏
- STM32标准库(固件库)分析
- myeclipse10 破解
- EasyClick 易点云测自动化测试入门到精通
- 公寓宽带服务器无响应,学生宿舍公寓网络建设项目需求分析报告文档(8页)-原创力文档...
- Halcon二维码扫描算法总结
- 支持度、置信度和提升度
- 计算机电源功率计算,电源功率怎么计算?
- python获取网页图片_python抓取网页中的图片示例
- MVC---Android App的设计架构:MVC,MVP,MVVM与架构经验谈
- 马克鳗标记及文字图片工具安装步骤mac版本
- postgresql 开启大页_Postgresql-11.X 性能优化详解