也好。

该来的迟早会来。

反思再说吧。

向下跳过直到另一条分界线


%%%cbx也拿到了他的第一个AK了呢。

我的还是遥不可及。

我恨你,DeepinC。

我恨透你了。
你亲手埋葬所有希望,令我无比气愤。

我总想打你一顿,但是这除了让他人取笑以外毫无用处。

没有什么借口。

本来还想用数据出锅的那90分回去,但是没有意义。

如果这能让你有所改变的话。

没人知道你做错了什么,至少我也不知道。

但是这个世界不就是这个样子吗?

只看结果,强者为王。

你要好好思考一下教练对你说过的话:

你真的没有那么强。

现在你可以自觉的补一句:你弱得很呢。

伴随着最后一场的爆炸,你总排名从第15掉到第16,从第一机房垫底到第二机房房主。

没什么区别。

你也不配在A层待着。

知识不行练知识,心态不行练心态。

不管怎么说,所有的结果都是你自己造就的,现在是由过去的你创造的,未来是由现在的你创造的。

我也就这么一直目睹着你毁了自己。

昨晚考得那一套题可以说是比较擅长的类型了。

可是就算是擅长的类型,也能答成那个样子。

那么敢问,谁还能救你呢?

也只有你自己,也许还能挽救一下。

直到考试结束前的最后一秒,期望得分还高达240。

出分的时候,是真的傻眼了。

给5分钟时间让发泄一下的决定是如此高明,虽然我并没有遵守不要喊的约定。

T1没开int一分不剩,T2少取一次模丢60分,T3常数太大被卡成暴力掉了60分。

T3明明想到了主席树是一个log,但是感觉二维树状数组两个log好像也能过。

凭什么感觉?为什么不打主席树?脑子缺根筋??

嗯。可能吧。

但是这一切都是你自己造成的,不对吗?

明明能做的更好,你没做到,能怨谁呢?

也不用着急回A层了,时间还长,还不知道要考多少场才能再分一次。

且不说进不进的去,就算进去了,你连联赛的分数都稳不住你学什么省选知识点??

我也不相信你了。你要重新审视自己了。

我恨你。

我恨透你了。

要是昨天晚上别人都能想到你这种程度,那么你就是稳稳的倒数第一了。

但是你能随手丢掉160分,别人怎么能不超过你?

第一机房是留给强者的。

那里的位置是拼命争取才能得到的,并不是想要就能要的。

我想去。

但是你让我没去成。

我恨你。我恨透你了。

DeepinC,空有一腔所谓的热情是无用的。

就算你节节课间都往机房跑,你也不一定就能进第一机房。

你得面对你的缺点。

你自己数数,int改long long和取模爆炸这种问题你犯了多少次。

我想问你,你什么时候才能不再犯?

你给不出回答吧?

那么你就是活该了。

时间不多了,真的。

联赛就在眼前了。

曾经你是瞧不起联赛的,你直接就把眼光放在省选上了。

但是现在看来,不是很可笑吗?

你仔细思考一下:

如果你要靠翻盘才能进省队的话,那还不如不要学了。

现在摆在你面前的,省一都是问题吧。。。

我还是希望你不要辜负我的一腔热血。

最近的状态啊。。。我感觉我也没有颓什么啊。。

文化课文化课不行,奥赛奥赛爆炸。。。

看起来没有丝毫前途。。。

你不要再提曾经了,曾经的事情已经过去,也无法改变。

你把自己从A层拽出来了,承认这个结果就好了。

我还是想做A层的题。但现在不是任性的时候。

或者说,你没有任性的权力。

你一定还记得你的那篇《短期Flag》。

你已经对不起当时的自己了。

梦想在破灭。但是这还不是最后一个梦想。

梦醒了的话,你就该奋力前行了。

也许,还来得及。

你可能没做错什么,但是你做的还不够好。

细致一些吧,我求求你了。

我恳求你对我的,也是你自己的梦想,作出一些施舍。

我恨你,废物一个。

画着父母的钱,干不出一点好事。

连自己都对不起,就不必提是否愧对别人了。

我不忍心再让那些对我还抱有信心的人失望了,你呢?

你还有一些良知吧?

你还可以做得更好吧?

我恨透了你。但是没办法:

我只能虔诚地希望你能争点气

为自己谋得一条出路。。。

为我的内心带来一些满足。。。


T1:平均数

处理平均数类题的通用方法:把每一项都减去平均数。

李某东上的原题,不会。

直接做是没法做的,很容易想到二分答案,关键就是怎么check。

把每一项都减去mid值之后再做前缀和,统计逆序对。

具体统计的方法,就是扔进结构体里sort,用树状数组统计下标的逆序对,答案是一样的。

卡常且卡精度。

要开long long。不然一分没有。

 #include<cstdio>
#include<algorithm>
using namespace std;
int a[],n,t[],s[];long long k;
void add(int p,int w){for(;p<=;p+=p&-p)t[p]+=w;}
int ask(int p,int a=){for(;p;p-=p&-p)a+=t[p];return a;}
struct ps{double w;int p;friend bool operator<(ps a,ps b){return a.w<b.w;}}p[];
long long chk(double x){
long long inver=;double sum=;p[]=(ps){,};
for(int i=;i<=n;++i)p[i]=(ps){sum+=a[i]-x,i};
sort(p,p+n+);
for(int i=n;~i;--i)inver+=ask(p[i].p+),add(p[i].p+,);
for(int i=;i<=n;++i)add(i+,-);//printf("%lld\n",inver);
return inver;
}
int main(){
scanf("%d%lld",&n,&k);k--;
double l=,r=;
for(int i=;i<=n;++i)scanf("%d",&a[i]),r=max(r,a[i]*1.0);
while(r-l>1e-)if(chk((l+r)/)>k)r=(l+r)/;else l=(l+r)/;
printf("%.4lf\n",l);
}

T2:涂色游戏

最裸的矩阵快速幂。

这一行的填色方案只与上一行有关,所以dp。

dp[i][j]表示在第i行填了特定j中颜色的方案数。

考虑转移。枚举两行的颜色数再枚举交集即可。

如果上一行有i种下一行有j种交集为k种。

转移条件是i+j-k<=p&&i+j-k>=q。

那么就是一个组合数学问题了。

先在上一行的颜色里选出重复部分$C_i^k$

再选出这一行交集以外的部分$C_{p-i}^{j-k}$

然后的问题就是已知某k种颜色填n个位置,要求每种颜色必须出现。我是dp做的,据说可以容斥。

然后发现每一层的转移系数都相同,那就是简单的矩阵快速幂了。

注意取模。

 #include<cstdio>
#define int long long
#define mod 998244353
int n,m,p,q,pl[][],C[][],base[][],ans[],re[][],Ans;
void mult_base(){
for(int i=;i<=p;++i)for(int j=;j<=p;++j)for(int k=;k<=p;++k)re[i][j]=(re[i][j]+base[i][k]*base[k][j])%mod;
for(int i=;i<=p;++i)for(int j=;j<=p;++j)base[i][j]=re[i][j],re[i][j]=;
}
void mult_ans(){
for(int i=;i<=p;++i)for(int j=;j<=p;++j)re[][i]=(re[][i]+ans[j]*base[j][i])%mod;
for(int i=;i<=p;++i)ans[i]=re[][i],re[][i]=;
}
signed main(){
scanf("%lld%lld%lld%lld",&n,&m,&p,&q);m--;
pl[][]=;
for(int i=;i<=n;++i)for(int j=;j<=p;++j)pl[i][j]=(pl[i-][j-]+pl[i-][j])*j%mod;
for(int i=;i<=p;++i)C[i][]=;
for(int i=;i<=p;++i)for(int j=;j<=i;++j)C[i][j]=(C[i-][j-]+C[i-][j])%mod;
for(int x=;x<=p;++x)for(int y=;y<=p;++y)for(int c=;c<=p;++c)if(x+y-c<=p&&x+y-c>=q)
base[x][y]=(base[x][y]+C[x][c]*C[p-x][y-c]%mod*pl[n][y])%mod;
for(int i=;i<=p;++i)ans[i]=pl[n][i]*C[p][i]%mod;
for(;m;m>>=,mult_base())if(m&)mult_ans();
for(int i=;i<=p;++i)Ans=(Ans+ans[i])%mod;
printf("%lld\n",Ans);
}

T3:序列

对于每一个区间询问都可以拆成两部分:l-1以内的w以上的数产生-1贡献,r以内w以上的数产生1贡献。

然后就是可以考虑每一个位置的贡献了。是个二维偏序。

用主席树可以做到一个log,两个log会T成暴力。

然后修改一个位置就是删除原贡献添加新贡献。

 #include<cstdio>
#include<algorithm>
using namespace std;
struct qs{int p,w,v;friend bool operator<(qs a,qs b){return a.p<b.p;}}qt[];
int n,m,q,a[],cnt,rt[],ecnt,lc[],rc[],w[],nw;long long lastans;
void insert(int &p,int cpy,int wp,int v,int cl=,int cr=n+){
p=++ecnt;
if(cl==cr){w[p]=w[cpy]+v;return;}
if(wp<=cl+cr>>)insert(lc[p],lc[cpy],wp,v,cl,cl+cr>>),rc[p]=rc[cpy];
else insert(rc[p],rc[cpy],wp,v,(cl+cr>>)+,cr),lc[p]=lc[cpy];
w[p]=w[lc[p]]+w[rc[p]];
}
int ask(int p,int pos,int cl=,int cr=n+){
if(cr<=pos)return w[p];
if(cl+cr>>>=pos)return ask(lc[p],pos,cl,cl+cr>>);
return w[lc[p]]+ask(rc[p],pos,(cl+cr>>)+,cr);
}
int main(){
scanf("%d%d%d",&n,&m,&q);
for(int i=;i<=n;++i)scanf("%d",&a[i]);
for(int i=,x,y,W;i<=m;++i)scanf("%d%d%d",&x,&y,&W),qt[++cnt]=(qs){n-x+,W,-},qt[++cnt]=(qs){n-y+,W,};
sort(qt+,qt++cnt);
for(int i=;i<=cnt;++i)if(qt[i].p==qt[i-].p)insert(nw=,rt[qt[i].p],qt[i].w,qt[i].v),rt[qt[i].p]=nw;
else{for(int j=qt[i-].p+;j<qt[i].p;++j)rt[j]=rt[j-];insert(rt[qt[i].p],rt[qt[i].p-],qt[i].w,qt[i].v);}
for(int j=qt[cnt].p+;j<=n+;++j)rt[j]=rt[j-];
for(int i=;i<=n;++i)lastans+=ask(rt[n-i+],a[i]);
printf("%lld\n",lastans);
for(long long i=,p,W;i<=q;++i){
scanf("%lld%lld",&p,&W);
p^=lastans;W^=lastans;
lastans-=ask(rt[n-p+],a[p]);lastans+=ask(rt[n-p+],a[p]=W);
printf("%lld\n",lastans);
}
}

[考试反思]0926csp-s模拟测试52:审判的更多相关文章

  1. [考试反思]0718 NOIP模拟测试5

    最后一个是我...rank#11 rank#1和rank#2被外校大佬包揽了. 啊...考的太烂说话底气不足... 我考场上在干些什么啊!!! 20分钟“切”掉T2,又27分钟“切”掉T1 切什么切, ...

  2. 2019.9.26 csp-s模拟测试52 反思总结

    刚刚写了一个小时的博客没了,浏览器自动刷新. 一!个!小!时! 鼠标键盘电脑哪个都不能摔,气死我了. 垃圾选手T1T2没思路,T3倒是想出来得比较早,靠T3撑着分数. 数据结构学傻选手,属实垃圾. T ...

  3. noip模拟测试52

    这套题总体来说比较简单,但是有一些分数我没有拿到,先说T1,我10分钟左右打完了60分的暴力,然后就开始打表找规律,好像只有我去找了循环节,找规律找了一个多小时,到八点四十的时候我还没有正解做法,就直 ...

  4. [CSP-S模拟测试52]题解

    A.平均数 看到第K小,又确定跟平衡树/主席树没有关系,可以把问题转化为有K-1个答案比它小再考虑二分. 二分平均值x,之后将原序列统一减去x.这时序列中区间和<0的区间个数就是原序列中平均值小 ...

  5. csp-s模拟测试52平均数,序列题解

    题面:https://www.cnblogs.com/Juve/articles/11602244.html 平均数: 第k个平均数不好求,我们考虑二分,转化成平均数小于x的有几个 虑把序列中的每个数 ...

  6. [考试反思]0814NOIP模拟测试21

    前两名是外校的240.220.kx和skyh拿到了190的[暴力打满]的好成绩. 我第5是170分,然而160分就是第19了. 在前一晚上刚刚爆炸完毕后,心态格外平稳. 想想前一天晚上的挣扎: 啊啊啊 ...

  7. [考试反思]1109csp-s模拟测试106:撞词

    (撞哈希了用了模拟测试28的词,所以这次就叫撞词吧) 蓝色的0... 蓝色的0... 都该联赛了还能CE呢... 考试结束前15分钟左右,期望得分300 然后对拍发现T2伪了写了一个能拿90分的垃圾随 ...

  8. [考试反思]0909csp-s模拟测试41:反典

    说在前面:我是反面典型!!!不要学我!!! 说在前面:向rank1某脸学习,不管是什么题都在考试反思后面稍微写一下题解. 这次是真的真的运气好... 这次知识点上还可以,但是答题策略出了问题... 幸 ...

  9. [考试反思]0729NOIP模拟测试10

    安度因:哇哦. 安度因:谢谢你. 第三个rank1不知为什么就来了.迷之二连?也不知道哪里来的rp 连续两次考试数学都占了比较大的比重,所以我非常幸运的得以发挥我的优势(也许是优势吧,反正数学里基本没 ...

随机推荐

  1. [Python] 豆瓣电影top250爬虫

    1.分析 <li><div class="item">电影信息</div></li> 每个电影信息都是同样的格式,毕竟在服务器端是用 ...

  2. Java面试----01.JavaSE

    1.面向对象和面向过程的区别 面向过程:面向过程性能比面向对象高. 因为类调用时需要实例化,比较消耗资源,所以当性能是最重要的考虑因素时,比如单片机.嵌入式开发.Linux/Unix等一般采用面向对象 ...

  3. .NET Core 3.0之深入源码理解ObjectPool(一)

    写在前面 对象池是一种比较常用的提高系统性能的软件设计模式,它维护了一系列相关对象列表的容器对象,这些对象可以随时重复使用,对象池节省了频繁创建对象的开销. 它使用取用/归还的操作模式,并重复执行这些 ...

  4. 死磕 java线程系列之线程池深入解析——体系结构

    (手机横屏看源码更方便) 注:java源码分析部分如无特殊说明均基于 java8 版本. 简介 Java的线程池是块硬骨头,对线程池的源码做深入研究不仅能提高对Java整个并发编程的理解,也能提高自己 ...

  5. springboot项目目录结构

    idea新建springboot项目 按默认下一步至完成,默认目录结构如下 pom.xml文件内容如下 <?xml version="1.0" encoding=" ...

  6. JS基本数据类型和引用数据类型的区别及深浅拷贝

    前言 首先我们先来了解一下什么叫栈堆,基本数据类型与引用数据类型 1.栈(stack)和堆(heap)stack为自动分配的内存空间,它由系统自动释放:而heap则是动态分配的内存,大小也不一定会自动 ...

  7. session,cookie,sessionStorage,localStorage的相关设置以及获取删除

    一.cookie 什么是 Cookie? "cookie 是存储于访问者的计算机中的变量.每当同一台计算机通过浏览器请求某个页面时,就会发送这个 cookie.你可以使用 JavaScrip ...

  8. 编程杂谈——std::vector与List<T>的性能比较

    昨天在比较完C++中std::vector的两个方法的性能差异并留下记录后--编程杂谈--使用emplace_back取代push_back,今日尝试在C#中测试对应功能的性能. C#中对应std:: ...

  9. Roadmap of FE

    未完待补充......

  10. [Luogu1379]八数码难题

    题目描述 在3×3的棋盘上,摆有八个棋子,每个棋子上标有1至8的某一数字.棋盘中留有一个空格,空格用0来表示.空格周围的棋子可以移到空格中.要求解的问题是:给出一种初始布局(初始状态)和目标布局(为了 ...