cf 1677 B. Tokitsukaze and Meeting
这题乍一看十分复杂,因为行列都是动态的
但是将行列分开来看,题目顿时就豁然开朗了
对于行
重点在行的计数实际上是一个dp问题,每一行的答案数都可以由上一行(相同列)的答案数转移过来,然而对于每一行,都会由新的一行
eg:
0 | 1 |
1 | * |
* | * |
=》
? | ? |
0 | 1 |
1 |
可以看出,除开新增加的行(最上面一行)行的行答案数实际上是相同的(而上一行有无答案值,则取决于有无新的1在不在第一行),于是我们可以设定一个计数指针idx,遍历input如果出现1,则将其置为m,每次有下一个数进入,都将idx--,如果idx>0,则就将dp[i-1][j]的答案值加一
对于列
每加入一个数,所有列上的数都会向右走,故,每一个不重复的1都会对应使一列合法,因此st记录该列是否有1即可
#include<iostream>
#include<algorithm>
#include<cstring>
#include<string>
#include<vector>using namespace std;const int N = 2000006;
bool row[N];
int n, m;
string in;int main()
{int _;cin >> _;while (_--){cin >> n >> m >> in;for (int i = 0; i <= m; i++)row[i] = false;int dp[n + 1][m + 1];memset(dp, 0, sizeof dp);int idx = 0, t;for(register int i = 1;i <= n; i++)for (register int j = 1; j <= m; j++){t = (i - 1) * m + j - 1;if (in[t] == '1')idx = m;dp[i][j] = dp[i - 1][j] + (idx > 0);idx--;}int cnt = 0;for (register int i = 1; i <= n; i++)for (register int j = 1; j <= m; j++){t = (i - 1) * m + j - 1;if (in[t] == '1' && !row[j])cnt++, row[j] = true;cout << cnt + dp[i][j] << ' ';}puts("");}return 0;
}
cf 1677 B. Tokitsukaze and Meeting相关推荐
- Cf Round #403 B. The Meeting Place Cannot Be Changed(二分答案)
The Meeting Place Cannot Be Changed 我发现我最近越来越zz了,md 连调程序都不会了,首先要有想法,之后输出如果和期望的不一样就从输入开始一步一步地调啊,tmd现在 ...
- 【CF 1191】Tokitsukaze, CSL and Stone Game//Tokitsukaze and Duel//Tokitsukaze and Strange Rectangle
很难想 but很好实现 博弈论专练 传送门 惯例这里只完成D,E,F 话不多说上代码 文章目录 D:Tokitsukaze, CSL and Stone Game 题目大意 题解 代码实现 E:Tok ...
- CF 723A The New Year: Meeting Friends
题目链接:http://codeforces.com/problemset/problem/723/A A. The New Year: Meeting Friends time limit per ...
- Codeforces Round #789 (Div. 1) B. Tokitsukaze and Meeting
翻译: 德木风正在安排会面.会议厅里有
- CF 782 B CoB. The Meeting Place Cannot Be Change 3分求极值
题目链接:见这里 题意:开始每个人都在一条数轴上的某个位置上,位置大于等于1都是整数,每个人有个最大移动速度,为在数轴上面哪个点集合,所用的集合时间最短,求这个时间,集合地点可以不是整数. 解法:3分 ...
- Codeforces Round #789 (Div. 2)题解
Codeforces Round #789 (Div. 2)题解 A. Tokitsukaze and All Zero Sequence 原题链接 算法标签 贪心 排序 思路 情况一:数组存在零 → ...
- 【CF#-931A】 Friends Meeting(思维)
题干: Two friends are on the coordinate axis Ox in points with integer coordinates. One of them is in ...
- cf 1677A - Tokitsukaze and Strange Inequality
预处理,暴力枚举,巧妙地转换枚举对象,前缀和,状态表示 对于此题,定义一个辅助数组则很好求解 sum[i]][j],将b放置在第i个位置上,可选前j个数字的可选方案数 反之,可得到c的sum状态表示 ...
- cf #823 Div.2(A~C)
Cf #823 Div.2 文章目录 Cf #823 Div.2 [A. Planets](https://codeforces.com/contest/1730/problem/A) [B. Mee ...
最新文章
- VLFeat开源库介绍及在VS2013中的编译
- ES5-10 原型、原型链、闭包立即执行函数、插件开发
- android下raw目录的作用,Android 之 assets目录和raw目录
- C# 全角半角相互转换
- php解析xml数据格式,PHP解析xml格式数据工具类实例分享
- 一维数组元素倒置 c语言,实例12 数组中元素的倒置.pdf
- 马云还曾有过这么一段求职经历
- 外卖小哥到底是一群什么样的人?答案超乎你想象
- Overfeat图片分类、定位、检测
- 微信小程序 js部分语法
- 神经元模型图手工制作,神经元模型图手工模型
- 此一去,世间再无马爸爸,相逢已是马老师
- 最大流最小割经典例题_图像分割之最小割与最大流算法
- 自相关性,偏自相关性分析,时间序列相关性分析(spearman相关性,pearson相关性)
- Android实现用文字生成图片
- Antv F2双柱状图和折线图的混合写法
- 4个好用的WebShell网站后门查杀工具 在线木马查杀
- 开源主流分布式文件系统简单介绍
- YouTube-dl命令报错
- 聊天记录怎么录视频 微信聊天记录屏幕录制