上个月便是参加了noip2018普及组的复赛
22号看到了成绩——
194分——100、80、10、4
我在北京,估摸着顶多也只是二等奖了。
每一道题都暴露出了我的一些问题,现来分析
### 第一题 —— 标题统计([P5015](https://www.luogu.org/problemnew/show/P5015))
我使用了char字符串,和cin.getline函数来整行输入,
在此发现了知识点遗忘的情况,
考试时先是慌慌张张的想cin.getline的用法
```cpp
std::cin.getline(字符指针,输入字符个数);
```
后来想用strlen来测长,却终究也没能想出来,手动判断'\0'来解决了。
其正确语法为
```cpp
strlen(字符数组名);
```
这是一个日常学习中的遗忘的问题,以后再学习新知识时也要反过头来复习一番。
最后 是第一题我的考试源码
```cpp
#include
using namespace std;
int main()
{
freopen("title.in","r",stdin);
freopen("title.out","w",stdout);
char s[1001];
int a, n = 0, i;
cin.getline(s, 10);
for(i = 0; i <= 10; i++)
{
if(s[i] == '\0') break;
if(s[i] != ' ') n++;
}
cout << n << endl;
return 0;
}
```
### 第二题——龙虎斗([P5016](https://www.luogu.org/problemnew/show/P5016))
很可惜,这道题我没能拿满。
只过了80%的测评点,为什么?
拿到源码那天,我去洛谷民间测试,错了后四个点
当时慌了,肯定是数据量超了
再看一遍数据规模——
```
对于100%的数据,n<=10^5,ci,s1,s2<=10^9。
```
自己以为c1,s1,s2都不超过整型,在做题过程中也就没有想会超出整型范围。
实际上,在题目中进行求和时,最大将会达到10^5*10^9=10^14。
很明显,要开int64.
其他的这道题没什么好说的了,上一下改之后的源码吧,毕竟这题没拿满。
```cpp
#include
using namespace std;
int main()
{
//freopen("fight.in","r",stdin);
//freopen("fight.out","w",stdout);
long long n, m, p1, p2, s1, s2, w = 0, i, mi, mip;
cin >> n;
long long c[n + 1];
for(int i = 1; i <= n; i++) cin >> c[i];
cin >> m >> p1 >> s1 >> s2;
for(i = 1; i <= n; i++)
{
w += (i - m) * c[i];
}
w += s1 * (p1 - m);
long long p = m - w / s2;
if(p < 1) p = 1;
if(p > n) p = n;
mi = abs(w + (p - m) * s2);
mip = p;
for(i = p - 1; i <= p + 1; i++)
{
if(i == 0 || i == n) break;
if(abs(w + (i - m) * s2) <= mi)
{
mi = abs(w + (i - m) * s2);
mip = i;
}
}
p2 = mip;
cout << p2 << endl;
return 0;
}
```
### 关于后两道题
因为学习进度较慢,更高深一点的算法实在是没有学过,这两道题纯属碰点,14分都在意料之内的。
于是,之后的学习计划就是继续搞定其他算法。
### 最后
这么一次考试下来,算是给我积累了不少的大赛经验。
在此,想小声bb几句
我所在的考点出现了不少状况。
考试开始之后,花了几分钟进用户……
然后全考场都又花了十分钟解压题目……
这些都不是最重要的
考场的电脑不是windows装虚拟机跑Linux
而是直接装在启动盘上,直接运行Linux
不知与此有没有什么关系,
在正常操作的情况下,我的GUIDE崩了不下5次。
同时,GUIDE编译的程序结束后没有停留。
我企图调用cstdlib库来system("Pause");
但是只要我调用一个非iostream的库,程序就无法运行
最后我用的万能库,并且直接文件输出(手动捂脸
不知道别的考场有没有类似情况,与我同一考场的同学也有出现程序结束没有停留的的情况。
#### 抛开那些因素,即使是正常使用,我也拿不到更高的分了吧,
#### 希望接下来的一年自己可以努力加油学习,争取明年再战NOIP2019提高组QAQ