雅礼集训游记
其实感觉真的是跟来玩的一样 所以叫游记么.......
其实感觉来这里的最大收获不是考试,而是认识了许多强省的大佬,知道了自己高二该干些什么,学习的方向
感觉学到的知识还是有的,以前知道但是没实现过的算法,通过考试题都实现了一下,感觉学习效率着实要比自己学习高得多
day0
我们坐高铁去长沙,本来书包里装的都是集训队论文集,我想这十几天的晚上就肝论文集吧
谁知道论文那么水,在高铁上肝完了两篇,只有胡泊涛的最小割模型讲的还不错,比较耗时间
长沙果然热啊,到了目的地,我买了三瓶水才解了渴,晚上吃了黄焖鸡,焦景辉说他曾经吃了一周的黄焖鸡
感觉味道还行,我认为我不太能吃辣的,所以就要了一份不辣的 感觉还行
day1
第一天是讲课 讲课人是去年noi国家集训队的
是个小胖子,挺可爱的,就是说话有点听不清,上午讲了一上午计数题,感觉有点听不懂,我决定大力学一波生成函数
下午讲概率与期望,讲课人ppt标题的后面加了一个及计数,让全场哈哈大笑
day2
woc 纸质的试卷,没有大样例。。。。。。。。
第一题计数 第二题 计数。。。。 第三题 计数。。。。。。。。。
woc 全他妈是计数 果断弃疗。。。。。。。。。
day3
还是考试 还是纸质试卷 还是没有大样例 。。。。。
第一题 数据结构 第二题 数据结构 第三题 数据结构。。。
中午去吃了便当,感觉只是我人生第一次吃这种叫便当的东西,感觉还行
最可笑的是下午出题人居然说他擅长的是数据结构不是计数
day4
讲课时间到 感觉这个讲课人还行 与听众同学互动频繁,讲的也挺有用的 讲的数据结构
感觉要学习的就是二进制划分 划分树什么的等有空了看情况吧
中午吃了黄焖鸡,尝试了一下微辣,感觉并不是很辣啊,难道我变得能吃辣椒了么
day5
又到了喜闻乐见的考试时间了
好像又是三个计数题,我他妈不想写了
第三题居然和HAOI2018下午T2很像 广义容斥+分治FFT
晚上尝试了一下黄焖鸡特辣 感觉就那样 woc我的口味为啥在逐渐变态 感觉特辣已经满足不了我了 需要变态辣
day6~day100
考试愈发显得不正常,要么是板子题,要么是不可做题,感觉对水平的提升没有很大帮助
所以叫雅礼noi2018分治FFT集训 垃圾出题人,骗钱还骗时间,真毒瘤,但是我感觉真正毒瘤的是那些能A掉毒瘤题的人
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
和集训撇清关系
下面讲些有营养的东西
比如说 线段树分治 了
线段树分治主要处理一类可以离线的问题
一般有两种操作,查询和修改
我们可以按操作的时间,也就是操作的序号来建一棵线段树,考虑,每个修改操作所影响的区间,然后在线段树上打上标记 每一个操作最多打log(m)个标记
最后从根部dfs遍历一遍线段树,按题目要求的方式,让父亲的标记和自己的标记合并
当到叶子节点的时候,就可以直接输出结果了 复杂度 mlogm*合并的复杂度 很优秀的算法
BZOJ 5334
5334: [Tjoi2018]数学计算
Time Limit: 10 Sec Memory Limit: 256 MBSubmit: 133 Solved: 98
[Submit][Status][Discuss]
Description
Input
Output
Sample Input
10 1000000000
1 2
2 1
1 2
1 10
2 3
2 4
1 6
1 7
1 12
2 7
Sample Output
1
2
20
10
1
6
42
504
84
HINT
Source
很板子的板子题 拿来练练手
#include <bits/stdc++.h> #define ll long long #define inf 1e9+10 using namespace std; inline int read(){ int x=0;int f=1;char ch=getchar(); while(!isdigit(ch)) {if(ch=='-') f=-1;ch=getchar();} while(isdigit(ch)) {x=x*10+ch-'0';ch=getchar();} return x*f; } const int MAXN=4e5+10; struct node{ ll x; }T[MAXN]; int n,t,mod,a[MAXN],x,y,vis[MAXN],v,b[MAXN]; inline void sig(int l,int r,int rt){ if(l==r){ printf("%lld\n",T[rt].x); return ; } int mid=(l+r)>>1; T[rt<<1].x=T[rt<<1].x*T[rt].x%mod; T[rt<<1|1].x=T[rt<<1|1].x*T[rt].x%mod; sig(l,mid,rt<<1); sig(mid+1,r,rt<<1|1); } inline void insert(int l,int r,int rt){ if(l>=x&&r<=y){ T[rt].x=T[rt].x*v%mod; return; } if(l>y||r<x) return; int mid=(l+r)>>1; insert(l,mid,rt<<1); insert(mid+1,r,rt<<1|1); } inline void build(int l,int r,int rt){ if(l==r){ T[rt].x=1;return; } int mid=(l+r)>>1; T[rt].x=1; build(l,mid,rt<<1); build(mid+1,r,rt<<1|1); } int main(){ t=read(); while(t--){ n=read();mod=read(); for(int i=1;i<=n;i++) vis[i]=0; build(1,n,1); for(int i=1;i<=n;i++){ a[i]=read();b[i]=read(); if(a[i]==2){ x=b[i];y=i-1;v=b[b[i]];vis[b[i]]=1; insert(1,n,1); } } for(int i=1;i<=n;i++){ if(a[i]==1&&vis[i]==0){ x=i;y=n;v=b[i]; insert(1,n,1); } } sig(1,n,1); } return 0; }