标签:
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 }
标签:
原文地址:http://www.cnblogs.com/Created-equal/p/5093737.html