1)每一行从左至右为升序排列;
1)每一列从上至下为降序排列。
现有Q个询问,每次询问矩阵A中有多少个数大于X。
0<n<=1000,
0<Q<=50000,
-10000<=aij,X<=10000.标签:std turn 内存限制 eof 理解 cstring span names 接下来
上午的省赛选拔,果然还是如我所料。。T T 狂虐不止 啊aaaaaaaa
然后,意识到了自己是真的很菜,你不是一直都知道自己很菜嘛。
一定一定简单题不能看错题,好像每次都会这样子 理解错题意 然后傻乎乎的提交 WAWAWAWAWA ......
思维要开阔一些 不要老在一个问题上钻牛角尖,要学着换种思路,说不定就 绿啦绿啦绿啦~!!
总的来说,题量太小 题还是要刷的。平时要锻炼锻炼独立思考的能力 尝试着去解决问题。
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 }
# 未完待续....
标签:std turn 内存限制 eof 理解 cstring span names 接下来
原文地址:https://www.cnblogs.com/JiaaaaKe/p/9478298.html