省选Round 1 - 总结

【总结】

  上午的省赛选拔,果然还是如我所料。。T T 狂虐不止 啊aaaaaaaa

  然后,意识到了自己是真的很菜,你不是一直都知道自己很菜嘛。  


  1. 一定一定简单题不能看错题,好像每次都会这样子  理解错题意  然后傻乎乎的提交   WAWAWAWAWA ......
  2. 思维要开阔一些 不要老在一个问题上钻牛角尖,要学着换种思路,说不定就 绿啦绿啦绿啦~!! 
  3. 总的来说,题量太小 题还是要刷的。平时要锻炼锻炼独立思考的能力 尝试着去解决问题。

Problem:

问题 A: 方

时间限制: 1 Sec  内存限制: 128 MB
提交: 171  解决: 36

题目描述

给定一个n*n的矩阵A,矩阵内的元素aij均为整数,且满足以下条件:
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 }

# 未完待续.... 

猜你喜欢

转载自www.cnblogs.com/JiaaaaKe/p/9478298.html