高考假+端午 集训

6.5

whk

本来是今天开始集训的来着

但是要去看牙,所以能多待一天 🥰

一年了,终于把被我妈爆破的电脑整好了
(原因是你原更新没空间了)
但是重置前让我体验一下米哈游的新启动器,我就下了
整完后把原下回来发现新启动器没了,恼了(

早上睡得晚了,我爸把我手机藏起来了
我说这不水吗,随便 QQ 找个同学给我手机打个电话不就好了
然后发现不常用 QQ 加同学
好吧其实是看新版 QQ 有点好奇一顿乱点碰到锁定了

最后上 steam 找个同学打了个电话找到了

把原的崩铁的主线都打完了
崩铁后备开拓力又没动,不到打啥(
一个版本前 的地图还顺带开了个小渊下宫
我把地上的探索打满了就想着下面的也没啥
结果任务老长而且我还又犯了看见宝箱就走不动的毛病
打半天连任务都没打完,恼了(

好消息:体力上限到 200 了
坏消息:没用到

晚上我爸回来喝多了,想到我期末考了依托
就 D 了我半天然后把我手机收了 😅
这时候我妈在用电脑
我就想着先睡会再起来玩……

OI

6.6

whk

???

……然后起的很晚,这下不困了 (

到处转车来衡水
赶了大半天路
没太颓成,因为手机没电了 😥

OI

听说他们上午打了模拟赛
就听了听大概的题意和思路啥的
感觉挺抽象的

开了道网络流的题

6.7

whk

???

OI

在讲倍增优化dp
没学,顺便听了一下
然后写了一天板子题 😅
(nnd 为啥预处理这麻烦)

网络流题依然没思路……

不到为啥感觉好无聊(
随便聊会天,maybe 会掺一点学术
颓会啥的一天也就过去了

。感觉既没玩好也没学好

6.8

whk

???

OI

把那道网络流过了
开始打机房模拟赛的 t1(树剖)
感觉确实手生了
而且发现树剖题都有好多细节 😥

下午有洛谷月赛
就会两唐题
本来想写 t3 的,发现 t4 貌似 比 t3 简单点
然后就去想 t4 了
结果不到为啥默认距离为 \(1\)
就因为这个还想到了他出锅的那个

大概像这样

假如我现在要知道 \(3\) 最多有几个
这里可以先把 \(2\) 变成 \(3\) ,再把 \(3\) 变成 \(4\) ,然后依次是 \(5\) , \(6\)
最后再把 \(3\) 变回来

nnd,越想越不对劲
再想看看别的题

直到 5k 进来

5k:求教教 t3

懂了,叫我开摆是吧 😅
然后也没去打部分分啥的

继续写树剖,然后似掉(

今天没咋颓
感觉比昨天好多了

6.9

whk

???

OI

把攒的网络流水题写了三道

说实话感觉效率挺高的 🥰

晚上打 AT
就写了三道,本来 D 是想矩阵快速幂来着
上个厕所见到 5k 了
问了他一下,结果提出了种比较高级的操作
没听太懂,但是有 5k 教教
经历了亿点挫折( 不会费马小定理 ,不知道能对指数取模 …… )
然后因为 log101e18 的精度问题等 挂了 6、7 次 😥

喜提 +6
名字还是绿油油的(

CF 从结果来看还是很让人满意的

6.10

whk

???

OI

网络流遇到了亿点点问题,反正没写动(

主要是我听 5k 说斜率优化这东西还挺常用的
那这怎么着得写个板子吧
然后就去看tj,然后看不懂,恼了
感觉让我推式子啥的会产生强烈的生理不适(

死活看不懂那玩意是咋优化的
问了问同学才勉强了解了原理
然后把代码贺了

又是没有效率的一天 😥

体活在宿舍打了会 UNQ
感觉就是唐诗大作战

你说的对,但是
现在机房已经没有什么让我颓的东西了
所以我真的没咋颓
但是也真的没干事
……

原图

6.11

whk

???

OI

上午开 比较基础的网络流解决匹配 的题

看第一道貌似会,但是要输出字典序最小的路径 😅
本来跳了的(伏笔)

结果剩下两道题,一道黑,一道 CF3000 的紫,难绷,又回去看那道题

求答案的过程 貌似 很顺利
(后面发现是因为我二分左边界就定的 \(1\) ,要不然跑出来是 \(0\)

nnd 我的逆天网络流代码不向汇点连边都能跑出结果来(

然后就调了一上午 😇

中午吃完饭又会机房看了半天
结果发个求助帖发现主页 @dead_X 又双叒叕被 JC 了,发了个 请求删号 的帖子,顺便抢了个前排,但是忘截图了(,后面看代码看不出来,就去看 dead_X 的 ZJ 省选游记了,%%%tql

所以又调了一中午 😇😇

下午以教练画饼打头
说了好多暑假集训的活动设想
最后告诉我们加起来就三次

下午放了四边形不等式优化dp 的视频,本来在担心不会是不是要听一下,后来一听都到求导了,直接摆(

去厕所碰到 int_R 了,拉他过来调题

-“你思路这里假了吧”
-“ooooo,会了会了”

然后 int_R 就走了

再然后

所以 int_R 又来了(

-“ooooo,我又会了”

发现因为没想对就开始写导致代码比较依托
所以就只能在上面又加了依托修补一下
导致篇幅不仅长而且跑的相对慢很多(

所以又调了一下午 😇😇😇

int_R int_R 要不下次写网络流你在旁边看着我(

晚上回来又是一大碗毒鸡汤下肚

把那题的题解写了,顺便放上了 luobotianle 的数据生成器
然后就来写闲话了

还是原图

nnd 咋水会都找不到时间呢

6.12

早上要跑操
听唐诗干事吐槽浪费时间
问题是没带书,还得被阿登看着(

上午打 IOI 赛制的 欢乐 码力赛
不是模拟就是只会打暴力 😥
还有一个结论题想不出来

下午不想改题
去看了眼最小割的题
虽然但是,挺显然的性质没看出来
给除了这条边以外的边权值减一 == 给这条边权值加一

然后就是建边的时候忘把源点汇点之间的边判掉了
割的时候会多割 \(1\)

然后一下午也是成功的只写了一道题 (

晚上被 cpa 拉去看码力赛 t6 线性筛做法的无注释代码 😅
被硬控 40min 才看出来一个数组是最小素数个数的意思

然后看到了 DZ 题解

what can i say,man?

😇😇😇

不是原图

确实不是原图,原图太大了
这里貌似只截了 1/3 的样子

6.13

whk

?!?!?!

OI

上午又双叒叕考了唐诗模拟赛
放了 4 道 dp,三道数据都水了 😅
真就学啥考啥是吧

t1 不会,t2 也不会,t3 也不会
就 t4 是数据结构优化才稍微会点

本来思路也挺好的,线段树也没锅
结果 60 行的代码,90% 在写线段树
就剩下那两行是 dp 还锅了(

难绷
后来大力卡常(其实是靠评测机波动)到了 91ms

另:难道线段树不是一个数组就行吗(

一个数组的线段树(忽略那个超级快读代码的话还是很好写的)
#include<bits/stdc++.h>
using namespace std;

namespace Octane {
    #define OCTANE // dqrdqrdqrdqrdqrdqrdqrdqrdqrdqrdqrdqrdqrdqr
    #define BUFFER_SIZE 100000 // dqrdqrdqrdqrdqrdqrdqrdqrdqrdqr
    #define ll long long // dqrdqrdqrdqrdqrdqrdqrdqrdqrdqrdqrdqr
    #define db double // dqrdqrdqrdqrdqrdqrdqrdqrdqrdqrdqrdqrdqr
    #define ldb long double // dqrdqrdqrdqrdqrdqrdqrdqrdqrdqrdqr
    char ibuf[100000], obuf[100000], *p1=ibuf,*p2=ibuf,*p3=obuf;
    #ifdef ONLINE_JUDGE//dqrdqrdqrdqrdqrdqrdqrdqrdqrdqrdqrdqrdqr
    #define getchar() ((p1==p2) and (p2=(p1=ibuf)+fread(ibuf,1,\
    BUFFER_SIZE,stdin),p1==p2)?(EOF):(*p1++)) // dqrdqrdqrdqrdqr
    #define putchar(x) ((p3==obuf+BUFFER_SIZE) && (fwrite(obuf,\
    p3-obuf,1,stdout),p3=obuf),*p3++=x) // dqrdqrdqrdqrdqrdqrdqr
    #endif// fread in OJ, getchar in local dqrdqrdqrdqrdqrdqrdqr
    #define isdigit(ch) (ch>47&&ch<58)//dqrdqrdqrdqrdqrdqrdqrdqr
    #define isspace(ch) (ch<=32&&ch!=EOF)//dqrdqrdqrdqrdqrdqrdqr
    #define isseen(ch) (ch>32) // dqrdqrdqrdqrdqrdqrdqrdqrdqrdqr
    struct Octane_t{~Octane_t(){fwrite(obuf,p3-obuf, 1, stdout);
    }bool flag=false;operator bool(){return flag;} }io; template
    <typename T>inline T read(){T s=0; int w = 1; char ch; while
    (ch=getchar(), !isdigit(ch)&&(ch!=EOF))if(ch == '-') w = -1;
    if(ch == EOF) return 0; while(isdigit(ch)) s = s*10+ch-48,ch
    =getchar(); return s *= w; } template<typename T>inline bool
    read(T &s) { s = 0; int w = 1; char ch; while(ch = getchar()
    ,!isdigit(ch)&&(ch!=EOF))if(ch == '-') w = -1; if(ch == EOF)
    return false;while(isdigit(ch))s = s*10+ch-48, ch=getchar();
    return s*=w,true;}inline bool read(char &s){while(s= getchar
    (), isspace(s)); return s != EOF; } inline bool read(char *s
    ){char ch=getchar();while(isspace(ch))ch= getchar();if(ch ==
    EOF)return false;while(isseen(ch)) *s++ = ch, ch= getchar();
    *s='\000';return true;}template<typename T> void printv(T a)
    {if(a== 0){ putchar('0'); return void(); }static char st[65]
    ; int top = 0; if (a < 0) putchar ('-'), a = - a; while(a)st
    [++top]='0'+a%10,a/=10;while(top)putchar(st[top--]);} inline
    void printv(char c){putchar(c);}inline void printv(char *s){
    for(int i=0;s[i];i++)putchar(s[i]);}inline void printv(const
    char *s){ for(int i=0;s[i];i++) putchar(s[i]); } inline void
    printv(bool a){ if(a != 0)putchar('1'); else putchar('0'); }
    #ifdef _GLIBCXX_STRING // support for string dqrdqrdqrdqrdqr
    inline bool read(std::string& s) { s = ""; char ch; while(ch
    =getchar(), isspace(ch)); if(ch == EOF) return false; while(
    !isspace(ch)) s+=ch,ch=getchar(); return true; } inline bool
    getline(Octane_t &io,std::string s){s="";char ch= getchar();
    if(ch==EOF)return false;while(ch!='\n' and ch !=EOF)s+=ch,ch
    =getchar();return true;}inline void printv(const std::string
    &a){for(auto i = a.begin(); i != a.end(); ++i) putchar(*i);}
    #endif// dqrdqrdqrdqrdqrdqrdqrdqrdqrdqrdqrdqrdqrdqrdqrdqrdqr
    template<typename T>inline void print(const char *p,T first)
    { int n = strlen(p) - 1; for(int i = 0; i <= n; i++) { if(p[
    i] == '`') { putchar(p[++ i]); continue; } else if ( p[i] ==
    '{'){printv(first); i++; continue; } else putchar(p[i]); } }
    #if __cplusplus >= 201103L // support for many values dqrdqr
    template<typename T,typename... T1>inline int read(T& a, T1&
    ...other){return read(a)+read(other...); } inline void print
    (const char *p) { printv(p); }template<typename T1, typename
    ... T2>void print(const char*p, T1 first, T2 ...other) { int
    n=strlen(p)-1; for(int i = 0; i <= n; i++) { if(p[i] == '`')
    {putchar(p[++i]);continue;}else if(p[i]=='{'){printv(first);
    print(p+i+2,other...);return void();}else putchar(p[i]); } }
    #endif // dqrdqrdqrdqrdqrdqrdqrdqrdqrdqrdqrdqrdqrdqrdqrdqrdq
    template <typename T> Octane_t& operator >> (Octane_t &io, T
    &b){return io.flag=read(b),io;}Octane_t& operator>>(Octane_t
    &io, char *b){return io.flag=read(b), io;} template<typename
    T>Octane_t&operator<<(Octane_t&io,T b){return printv(b),io;}
    #define cout io// dqrdqrdqrdqrdqrdqrdqrdqrdqrdqrdqrdqrdqrdqr
    #define cin io // dqrdqrdqrdqrdqrdqrdqrdqrdqrdqrdqrdqrdqrdqr
    #define endl '\n' // dqrdqrdqrdqrdqrdqrdqrdqrdqrdqrdqrdqrdqr
    #undef ll// dqrdqrdqrdqrdqrdqrdqrdqrdqrdqrdqrdqrdqrdqrdqrdqr
    #undef db// dqrdqrdqrdqrdqrdqrdqrdqrdqrdqrdqrdqrdqrdqrdqrdqr
    #undef ldb//dqrdqrdqrdqrdqrdqrdqrdqrdqrdqrdqrdqrdqrdqrdqrdqr
} using namespace Octane;

const int N=1e5+10;
int n,s,a[N],b[N],res[N][2];
int t[N<<3];
inline void pushdown(int x)
{
	if(t[x])
	{
		t[x<<1]=t[x<<1|1]=t[x];
		t[x]=0;
	}
	return ;
}
inline void change(int x,int l,int r,int ql,int qr,int q)
{
	if(ql<=l&&r<=qr)
	{
		t[x]=q;
		return ;
	}
	pushdown(x);
	int mid=l+r>>1;
	if(ql<=mid)
		change(x<<1,l,mid,ql,qr,q);
	if(qr>mid)
		change(x<<1|1,mid+1,r,ql,qr,q);
	return ;
}
inline int query(int x,int l,int r,int q)
{
	if(l==r)
		return t[x];
	pushdown(x);
	int mid=l+r>>1;
	if(q<=mid)
		return query(x<<1,l,mid,q);
	return query(x<<1|1,mid+1,r,q);
}
inline int max(int a,int b)
{
	return a>b?a:b;
}
inline int min(int a,int b)
{
	return a<b?a:b;
}
int main()
{
	freopen("d.in","r",stdin);
	freopen("d.out","w",stdout);
	cin>>n>>s;
	for(int i=1;i<=n;i++)
		cin>>a[i]>>b[i];
	for(int i=1,q;i<=n;i++)
	{
		q=query(1,-N,N,a[i]);
		res[i][0]=min(res[q][0]+abs(a[i]-a[q]),res[q][1]+abs(b[q]-a[i]));
		q=query(1,-N,N,b[i]);
		res[i][1]=min(res[q][0]+abs(b[i]-a[q]),res[q][1]+abs(b[q]-b[i]));
		change(1,-N,N,a[i],b[i],i);
	}
	cout<<min(res[n][0]+abs(a[n]-s),res[n][1]+abs(b[n]-s));
	return 0;
}

好像 t2 还不太会来着,不过问题不大

也不是原图

这个也确实不是原图
你下下来就会发现这玩意只有 100+kb
原因是原图 20+mb 你敢信(

不 想 上 文 化 课 ! ! !

想水但不知道水啥(


guge 说提一下暑假集训的意见……
我想玩原神能写到 ftp 里面吗 🙃

哎,感觉集训啥也没学到
呼应摘要了属于是
原神也没玩上
有没有什么很新的颓废方式

posted @ 2024-06-10 21:41  lxyt-415x  阅读(96)  评论(4编辑  收藏  举报