Codeforces Round #401 (Div. 2) C Alyona and Spreadsheet —— 打表
来源:互联网 发布:淘宝秒杀催生团队 编辑:程序博客网 时间:2024/06/05 18:32
题目链接:http://codeforces.com/contest/777/problem/C
During the lesson small girl Alyona works with one famous spreadsheet computer program and learns how to edit tables.
Now she has a table filled with integers. The table consists of n rows and m columns. By ai, j we will denote the integer located at the i-th row and the j-th column. We say that the table is sorted in non-decreasing order in the column j if ai, j ≤ ai + 1, j for all i from 1 to n - 1.
Teacher gave Alyona k tasks. For each of the tasks two integers l and r are given and Alyona has to answer the following question: if one keeps the rows from l to r inclusive and deletes all others, will the table be sorted in non-decreasing order in at least one column? Formally, does there exist such j that ai, j ≤ ai + 1, j for all i from l to r - 1 inclusive.
Alyona is too small to deal with this task and asks you to help!
The first line of the input contains two positive integers n and m (1 ≤ n·m ≤ 100 000) — the number of rows and the number of columns in the table respectively. Note that your are given a constraint that bound the product of these two integers, i.e. the number of elements in the table.
Each of the following n lines contains m integers. The j-th integers in the i of these lines stands for ai, j (1 ≤ ai, j ≤ 109).
The next line of the input contains an integer k (1 ≤ k ≤ 100 000) — the number of task that teacher gave to Alyona.
The i-th of the next k lines contains two integers li and ri (1 ≤ li ≤ ri ≤ n).
Print "Yes" to the i-th line of the output if the table consisting of rows from li to ri inclusive is sorted in non-decreasing order in at least one column. Otherwise, print "No".
5 41 2 3 53 1 3 24 5 2 35 5 3 24 4 3 461 12 54 53 51 31 5
YesNoYesYesYesNo
In the sample, the whole table is not sorted in any column. However, rows 1–3 are sorted in column 1, while rows 4–5 are sorted in column 3.
题解:
给出一个表格,给出l和r,问在l行和r行内(包括l行和r行),是否最少有一列,这列数随行数的递增,为非递减数列。
其中有k个l和r,k<=1000000, 情况这么大,每读入l r就对表格就行访问肯定会超时的,所以只能打表,读l r时直接访问。
其实怎么打表我是不会做的,所以还是看了通过的代码,发现他们都好聪明。方法如下:用tt[j]现时记录在i行内,在aij以上(包括aij)有多少个非递减数列项,用maxn[i]记录在i行里tt[j]的最大值,即记录在i行内,哪一列的非递减数列项的个数最多。
于是在输入l r时,r-l+1即为需要判断的数列项个数, maxn[r]即为实际的数列项个数,如果maxn[r]>=r-l+1, 即表明l r行内存在非递减数列。
代码如下:
#include<stdio.h> #include<cstring> #define MAX(a,b) (a>b?a:b) int main() { int n,m,k,l,r; scanf("%d%d",&n,&m); int a[n+5][m+5],maxn[n+5],tt[m+5]; memset(maxn,0,sizeof(maxn)); memset(tt,0,sizeof(tt)); for(int i = 0; i<n; i++) for(int j = 0; j<m; j++) { scanf("%d",&a[i][j]); if(i==0 || a[i][j]>=a[i-1][j]) tt[j]++; else tt[j] = 1; maxn[i] = MAX(maxn[i],tt[j]); } scanf("%d",&k); for(int i = 0; i<k; i++) { scanf("%d%d",&l,&r); if(r-l+1<=maxn[r-1]) puts("Yes"); else puts("No"); } return 0; }
- Codeforces Round #401 (Div. 2) C Alyona and Spreadsheet —— 打表
- Codeforces Round #401 (Div. 2)C. Alyona and Spreadsheet
- Codeforces Round #401 (Div. 2) C. Alyona and Spreadsheet
- Codeforces Round #401(Div. 2)C. Alyona and Spreadsheet【思维】
- Codeforces Round #401 (Div. 2) C. Alyona and Spreadsheet
- Codeforces Round #401 (Div. 2)C. Alyona and Spreadsheet
- Codeforces Round #401 (Div. 2) C. Alyona and Spreadsheet last数组、预处理、优化
- Codeforces Round #401 (Div. 2) C. Alyona and Spreadsheet(暴力)
- Codeforces Round #401 (Div. 2)C. Alyona and Spreadsheet(暴暴暴力)
- Codeforces Round #401 (Div. 2) C.Alyona and Spreadsheet【简单DP】
- (codeforces)C. Alyona and Spreadsheet
- Codeforces Round #358 (Div. 2) C. Alyona and the Tree
- Codeforces Round #358 (Div. 2)C. Alyona and the Tree
- Codeforces Round #358 (Div. 2) C. Alyona and the Tree
- Codeforces Round #381 (Div. 2)C - Alyona and mex
- Codeforces Round #381 (Div. 2) C. Alyona and mex
- Codeforces Round #381 (Div. 2)C. Alyona and mex
- Codeforces Round #381 (Div. 2)-C. Alyona and mex
- Spring中的JDBC操作
-  |"|&|<|>等html字符转义
- Android Https请求调用
- Mybatis环境配置
- 设计模式---迭代器模式(C++实现)
- Codeforces Round #401 (Div. 2) C Alyona and Spreadsheet —— 打表
- 从kubernetes看如何设计超大规模资源调度系统
- linux同时启动两个Tomcat
- python 入门级问题
- Myeclipse优化设置(编码、护眼、Maven、补全)
- Sublime Text 安装GIt 插件--SublimeGit
- ubuntu 中文搜狗输入发
- 欢迎使用CSDN-markdown编辑器
- 你不知道的JS读书笔记5—原型继承