如何制定网站icon图标,建设工程消防验收网站,项目运营方案计划书,谷歌浏览器app文章目录前言考场复盘T1 forwardT2 basketT4 square总结前言
320分 还不错啦 没有挂分还是很可贵的 #xff08;暴力TLE就不怪我了#xff09; T4反过来想其实就很可做了 逆向的思想需要培养#xff08;今天T1、昨天T2也是#xff09; 说实话今天早上状态不太好 特困生 不…
文章目录前言考场复盘T1 forwardT2 basketT4 square总结前言
320分 还不错啦 没有挂分还是很可贵的 暴力TLE就不怪我了 T4反过来想其实就很可做了 逆向的思想需要培养今天T1、昨天T2也是 说实话今天早上状态不太好 特困生 不过T1成了一个很好的激励剂
考场
不分题讲了有些乱 先看了一下题真就和zld的提示一样T1水的不行后面的思路不太明显但是相对感觉T3可做 本来应该先写个T3的暴力稳一稳什么的 但是鉴于T1水的太厉害了 我基本还是有自信不会把链表的板子写挂的 所以还是先把T1正解写了10min心态就好起来了 然后是T2和T4的暴力 T2的暴力还是有了一些技巧用链表插入代替排序可以到n270pts T4怎么想各种思路都是n3的50分之外不太能奢求太多了 回头看相对感觉可做的T3 gg诚不欺我先把暴力写了心态稳了很多 尤其是还剩两个多小时的时候 然后听naonao的预言尝试了离线然后发现就非常可做 然后不着急细细写就把它切掉了这题没挂还是挺不容易的 此时大概是10:20还有80分钟 时间的利用效率开始直线下滑 先把每道题瞅了一遍确保没有脑残bug 然后我想到T2n2000的70分似乎n2logn也能过 又因为觉得链表很容易挂 所以反向优化加了个log变成无脑代码 然后就T了10分…事实是我那个链表并没有写挂… 然后还有60min的样子 开始抠分最不满的T4 没有抠出来其实就是反着想没有想到 然后开始写玄学常数级优化… 包括特殊数据就上下左右翻折等诡异操作 然后就过了60 针不戳 996OJ的机子测甚至可以到80 然后就又检查了检查就结束了
复盘
T1 forward
缺乏逆向思维 反着想甚至比链表还好做
T2 basket
爆肝题 主要是set用的不熟练 std那样把新元素insert进去再删点会好做很多 而且还加了两个上下界防止溢出值得学习 我的代码
#includebits/stdc.h
using namespace std;
#define ll long long
const int N2e5100;
int n,m,q,t;
int nxt[N],jd[N];
struct node{ll a,b,c,id;bool operator (const node y)const{if(b!y.b)return by.b;else return cy.c;}
}p[N];
bool cmp(node x,node y){return x.ay.a;
}
struct node0{ll v,id;bool operator (const node0 y)const{return vy.v;}
};
setnodes;
setnode:: iterator it;
multisetnode0s0;
multisetnode0:: iterator it0;
ll ans,A,B,C;
void insert(node o){its.upper_bound(o);if(it!s.end()(*it).co.c) return;jd[o.id]1;while(it!s.begin()!s.empty()){it--;if((*it).co.c){jd[(*it).id]0;s.erase(it);its.upper_bound(o);}else{nxt[(*it).id]o.c;s0.insert((node0){(*it).bnxt[(*it).id],(*it).id});break;}}its.upper_bound(o);if(it!s.end()){nxt[o.id](*it).c;}else nxt[o.id]0;s0.insert((node0){o.bnxt[o.id],o.id});s.insert(o);return;}
int main(){scanf(%d,t);while(t--){memset(nxt,0,sizeof(nxt));s.clear();s0.clear();scanf(%d,n);for(int i1;in;i){scanf(%lld%lld%lld,p[i].a,p[i].b,p[i].c);}sort(p1,p1n,cmp);for(int i1;in;i) p[i].idi;ansp[1].a;for(int i1;in;i){Ain?0:p[i1].a;insert(p[i]);ll now;while(1){node0 o*s0.begin();//printf(ok);// printf(top:v%d id%d nxt%d\n,o.v,o.id,nxt[o.id]);if(jd[o.id]o.vp[o.id].bnxt[o.id]){nowo.v;break;}else s0.erase(s0.begin());}ansmin(ans,Anow);ansmin(ans,A(*s.begin()).c);//printf(i%d A%lld head%lld\n,i,A,*s0.begin());//printf(now%d C%d ans%lld\n,now,(*s.begin()).c,ans);}printf(%lld\n,ans);}
}
/*
2
3
1 2 100
100 4 5
1 100 3
1
10 10 10
*/
T4 square
代码细节挺多的 不太好调 尤其是复制粘贴一定要改干净
总结
今天不错啦 但是晚上T2调了太久了 抵制特困生我需要早睡qwq 明天动态规划加油