码迷,mamicode.com
首页 > 其他好文 > 详细

再见,2015;你好,2016

时间:2016-01-01 22:47:02      阅读:263      评论:0      收藏:0      [点我收藏+]

标签:

2015,就这么走了;2016,就这么来了。

在过去的一年里,我收获了许许多多。

我收获了成绩。我拿到了人生中第一个信息学竞赛的一等奖(AHOI 2015),和第一个NOIP的一等奖(NOIP 2015);尽管这些成绩算不了什么,但是对于我这么一个蒟蒻来说,也算是对我努力的一个肯定了吧。

我收获了经验教训。在NOIP 2015中,我因为数组少开了一格丢掉了整整50分。拿到源代码和成绩的时候自然是很伤心的,但是现在想想,这也是送给我的一个礼物。

我收获了。。

 

最后记录一下2015年我做的第一道题目和最后第一道题目。

第一道题目:

codevs 3004 我是世界之王

 1 #include <map>
 2 #include <cstdio>
 3 #include <string>
 4 
 5 using namespace std;
 6 
 7 const size_t Max_Size(15);
 8 
 9 char input_str[Max_Size];
10 unsigned int input_number;
11 map<string, unsigned int> v;
12 
13 unsigned int n, m;
14 
15 int main()
16 {
17     scanf("%u%u", &m, &n);
18     while (m--)
19     {
20         scanf("%s %u", input_str, &input_number);
21         v[string(input_str)] = input_number;
22     }
23     
24     while (n--)
25     {
26         scanf("%s", input_str);
27         if (v[string(input_str)] == 0)
28             printf("incorrect number\n");
29         else
30             printf("%u\n", v[string(input_str)]);
31     }
32     
33     return 0;
34 }

最后一道题目:

BZOJ 1047 [HAOI2007]理想的正方形

  1 #include <deque>
  2 #include <cstdio>
  3 #include <cstring>
  4 #include <algorithm>
  5 
  6 using namespace std;
  7 
  8 void Get_Val(int &Ret)
  9 {
 10     Ret = 0;
 11     char ch;
 12     while ((ch = getchar()), (ch > 9 || ch < 0))
 13         ;
 14     do
 15     {
 16         (Ret *= 10) += ch - 0;
 17     }
 18     while ((ch = getchar()), (ch >= 0 && ch <= 9));
 19 }
 20 
 21 const size_t Max_AB(1050);
 22 
 23 int A, B;
 24 int N;
 25 int Value[Max_AB][Max_AB];
 26 
 27 int colmax[Max_AB][Max_AB], rowmax[Max_AB][Max_AB];
 28 int colmin[Max_AB][Max_AB], rowmin[Max_AB][Max_AB];
 29 
 30 void init()
 31 {
 32     Get_Val(A), Get_Val(B), Get_Val(N);
 33     for (int i = 1;i <= A;++i)
 34         for (int j = 1;j <= B;++j)
 35             Get_Val(Value[i][j]);
 36 }
 37 
 38 struct node
 39 {
 40     node(const int &a = 0, const int &b = 0) : Number(a), Value(b) {}
 41     int Number;
 42     int Value;
 43 };
 44 
 45 void Col_Max(int col[][Max_AB])
 46 {
 47     deque<node> Q;
 48     for (int j = 1;j <= B;++j)
 49     {
 50         Q.clear();
 51         for (int i = 1;i <= A;++i)
 52         {
 53             while (!Q.empty() && Q.back().Value < Value[i][j])
 54                 Q.pop_back();
 55             Q.push_back(node(i, Value[i][j]));
 56             if (Q.front().Number < i - N + 1)
 57                 Q.pop_front();
 58             col[i][j] = Q.front().Value;
 59         }
 60     }
 61 }
 62 
 63 void Row_Max(int col[][Max_AB], int row[][Max_AB])
 64 {
 65     deque<node> Q;
 66     for (int i = 1;i <= A;++i)
 67     {
 68         Q.clear();
 69         for (int j = 1;j <= B;++j)
 70         {
 71             while (!Q.empty() && Q.back().Value < col[i][j])
 72                 Q.pop_back();
 73             Q.push_back(node(j, col[i][j]));
 74             if (Q.front().Number < j - N + 1)
 75                 Q.pop_front();
 76             row[i][j] = Q.front().Value;
 77         }
 78     }
 79 }
 80 
 81 void work()
 82 {
 83     Col_Max(colmax);
 84     Row_Max(colmax, rowmax);
 85     for (int i = 1;i <= A;++i)
 86         for (int j = 1;j <= B;++j)
 87             Value[i][j] = -Value[i][j];
 88     Col_Max(colmin);
 89     Row_Max(colmin, rowmin);
 90 }
 91 
 92 void Get_Ans()
 93 {
 94     int Ans(0X7F7F7F7F);
 95     for (int i = N;i <= A;++i)
 96         for (int j = N;j <= B;++j)
 97             Ans = min(Ans, rowmax[i][j] + rowmin[i][j]);
 98     printf("%d", Ans);
 99 }
100 
101 int main()
102 {
103     init();
104     work();
105     Get_Ans();
106     return 0;
107 }

 

再见,2015;你好,2016

标签:

原文地址:http://www.cnblogs.com/Created-equal/p/5093737.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!