省选Round 1 - 总结
Posted jiaaaake
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了省选Round 1 - 总结相关的知识,希望对你有一定的参考价值。
【总结】
上午的省赛选拔,果然还是如我所料。。T T 狂虐不止 啊aaaaaaaa
然后,意识到了自己是真的很菜,你不是一直都知道自己很菜嘛。
-
一定一定简单题不能看错题,好像每次都会这样子 理解错题意 然后傻乎乎的提交 WAWAWAWAWA ......
-
思维要开阔一些 不要老在一个问题上钻牛角尖,要学着换种思路,说不定就 绿啦绿啦绿啦~!!
-
总的来说,题量太小 题还是要刷的。平时要锻炼锻炼独立思考的能力 尝试着去解决问题。
Problem:
问题 A: 方
时间限制: 1 Sec 内存限制: 128 MB提交: 171 解决: 36
题目描述
给定一个n*n的矩阵A,矩阵内的元素aij均为整数,且满足以下条件:
1)每一行从左至右为升序排列;
1)每一列从上至下为降序排列。
现有Q个询问,每次询问矩阵A中有多少个数大于X。
1)每一行从左至右为升序排列;
1)每一列从上至下为降序排列。
现有Q个询问,每次询问矩阵A中有多少个数大于X。
0<n<=1000,
0<Q<=50000,
-10000<=aij,X<=10000.输入
第一行两个正整数n,Q
接下来n行每行n个整数aij。
接下来Q行每行一个整数Xi。
输出
输出Q行,每行一个整数表示矩阵中大于Xi的数的个数。
样例输入
3 2
4 5 6
3 4 5
2 3 4
4
3
样例输出
3
6
分析:
虽然我知道这个题很简单,但是作为小菜鸡的我是真的没有想出来T T。。。听完学姐的思路,觉得 哇,简直 胖胖胖。 为啥我看着它就想不到呢??!!开始就一直纠结首先输入一个二维数组,如果事先不做处理,就还要两重for循环找到这个数???? 我滴个妈呀,妥妥的TLE。然后东想西想啊 想不到。。 就先暴力了一遍,ans++ 提交,pia叽 果然超时。。 算了不提了,那些犯傻的日子 就让它过去吧.....
1 #include<iostream> 2 #include<algorithm> 3 #include<cstring> 4 5 using namespace std; 6 int n, q, a[20020]; 7 int main() 8 { 9 ios::sync_with_stdio(false); 10 while (cin >> n >> q) { 11 memset(a, 0, sizeof(a)); 12 for (int x, i = 0; i < n; i++) { 13 for (int j = 0; j < n; j++) { 14 cin >> x; 15 a[x + 10001]++; 16 } 17 } 18 for (int i = 1; i <= 20010; i++) 19 a[i] += a[i - 1]; 20 while (q--) { 21 int x; 22 cin >> x; 23 cout << a[20010] - a[x + 10001] << endl; 24 } 25 } 26 return 0; 27 }
# 未完待续....
以上是关于省选Round 1 - 总结的主要内容,如果未能解决你的问题,请参考以下文章
省选模拟 19/10/11 (LibreOJ NOI Round #2)
[Codeforces Round #522 (Div. 2, based on Technocup 2019 Elimination Round 3)][C. Playing Piano](代码片段