Biubiubiu~
记录
总之就是非常爽。(爽是暂时的,不能抵扣浙大机试就开始哭了呜呜呜呜呜呜呜。)写算法写代码就是快乐,后面可以自由自在地看竞赛书了,慢慢修炼,打到 codeforces 1900 分。
从去年十二月开始学 C++,一个半月看完了《C++ Primer》前七章,然后做了五十多道乙级、十多道乙级,去考了2021年春季甲级。53分,当时心里还是五味杂陈。春天那个学期一边修环境的专业课(课还是比较多的),一边看《算法笔记》(胡凡大大的),一边刷《 算法笔记上机训练实战指南》,零零散散,到昨天差不多把 PAT 甲级的所有题(除了最后三套往年浙大机试题)全部刷完并更在了 CSDN 上。
当时刷乙级的时候在CSDN上面找题解,有一位大大给的题解,哈希和 STL 的用法真的惊艳一个刚学了点语言皮毛的人。从他那里还学会了埃氏筛法,后面两个月才在《算法笔记》书上看到。可惜后来换电脑找不到网页了,没有关注 TA。
《算法笔记》真的特别系统和考研向(或许也能当一个竞赛启蒙?但也只是启蒙,还不算入门,哈哈)。它有一个很好的目录,PAT 的支撑让这个目录的骨架充实起来。
最后给一下今天考试的代码。
7-1 Arrays and Linked Lists (20 分)
简答模拟。
#include <bits/stdc++.h>
using namespace std;
struct Array{
int beg,length;
};
vector<Array> vec;
int last=1;
int main() {
int n,k;cin>>n>>k;
for(int i=0;i<n;++i){
int ad,len;cin>>ad>>len;
vec.push_back({
ad,len});
}
for(int i=0;i<k;++i){
bool find=false;
int id;cin>>id;
int ctr=0;
for(int j=0;j<vec.size();++j){
ctr+=vec[j].length;
if(ctr>=id+1){
cout<<vec[j].beg+4*(id-ctr+vec[j].length)<<"\n";
find=true;
last=max(last,j+1);
break;
}
}
if(!find) cout<<"Illegal Access\n"