自闭。不废话。写一下低错。

T1:觉得信心赛T1不会很恶心一遍过样例直接没对拍(其实是想写完T2之后回来对拍的)

状态也不好,基本全机房都开始码了我还没想出来(skyh已经开T2了)。想了40多分钟。

区别不大。真是人才。

而且反向的单调栈没reverse。爆零。

T2:100多分钟打表找到了一个仅适用于n,a<=5的规律(我还以为它是普适的,但其实n<=5,a<=5也不完全对)。浪费时间太多。

这次说实在的不是故意刚它的,因为打表不断有新进展所以很开心就没看时间。

T3:最后7分钟写的暴力得了和前198分钟一样的分数。

丢30分。求lca都不会打了。

真他妈难度中等有区分度看来我女队也混不了了2333。。。

把出题人挂起来婊

对自己没话可说了。那就干脆别废话了吧。

T1:A

可以发现,他给的二次函数没有c。有什么特性?一定经过原点?这个没什么用。

是可以整体除以x得到一次函数,正负分情况讨论。那么就剩下一个单调栈维护凸包板子。

写了对拍20分钟肯定是能调出来的。

 #include<cstdio>
#include<algorithm>
using namespace std;
#define int long long
struct line{
int k,b;
friend bool operator<(line A,line B){
return A.k<B.k||(A.k==B.k&&A.b<B.b);
}
}l[];
int ans[],sta[],top,negans[];
int cal(int o,int x){return l[o].k*x*x+l[o].b*x;}
long double mp(int o,int p){return (.0L+l[o].b-l[p].b)/(l[p].k-l[o].k);}
main(){
freopen("A.in","r",stdin);freopen("A.out","w",stdout);
int n,q,x;scanf("%lld%lld",&n,&q);
for(int i=;i<=n;++i)scanf("%lld%lld",&l[i].k,&l[i].b);
sort(l+,l++n);
for(int i=;i<=n;++i){
while(top&&l[sta[top]].k==l[i].k&&l[sta[top]].b<l[i].b)top--;
while(top&&mp(sta[top],i)<)top--;
while(top>&&mp(sta[top-],sta[top])>=mp(sta[top-],i))top--;
sta[++top]=i;
}//for(int i=1;i<=top;++i)printf("%lld %lld\n",l[sta[i]].k,l[sta[i]].b);printf("%lld\n",l[2].k-l[3].k);
int ptr=;
for(int X=;X<;++X){
while(ptr<top&&cal(sta[ptr],X)<=cal(sta[ptr+],X))ptr++;
ans[X]=cal(sta[ptr],X);
}
top=;ptr=;
for(int i=n;i;--i){
while(top&&l[sta[top]].k==l[i].k&&l[sta[top]].b>l[i].b)top--;
while(top>&&mp(sta[top-],sta[top])>=mp(sta[top-],i))top--;
sta[++top]=i;
}reverse(sta+,sta++top);
for(int X=-;X>-;--X){
while(ptr<top&&cal(sta[ptr],X)<=cal(sta[ptr+],X))ptr++;
negans[-X]=cal(sta[ptr],X);
}
while(q--)scanf("%lld",&x),printf("%lld\n",x>=?ans[x]:negans[-x]);
}

T2:B

除了第一个以外,其余的每一位是不互相影响的。

那么答案就是$a_1 + \sum\limits_{i=2)^{n} f(a_1,a_i) $

关键在于计算$f$函数。可以发现这个$f$函数的含义:

第一个物品被选完了,第二个物品期望被选多少个。

枚举它选了多少个,计算出概率,特殊处理被选完的情况,概率就是1-前面没被选的概率之和。

$f(a,b)=\sum\limits_{i=0}^{b-1} \frac{i \times C_{a+i-1}^{i}}{2^{a+i}} \ + b \ - \sum\limits_{i=0}^{b-1}\frac{b \times C_{a+i-1}^{i}}{2^{a+i}}$

+b前面的部分就是没选完,后面的部分就是选完了的剩余情况。组合数就是枚举这么多次选择恰好把它选完的方案数,除总方案数就是概率。

要-1的原因是最后一步要默认选择的是a而不是b。否则会重复计数。

再看本题的特殊之处,每次调用$f$函数的时候,第一个参数$a$都是一致的。

那么只要处理出来a这一列就好了。

可以发现,b每增大1,式子的变化之处并不多,前后的和式都多了一项。线性递推预处理即可。

 #include<cstdio>
#include<iostream>
using namespace std;
#define int long long
#define mod 323232323
#define S 1000005
int qpow(int b,int t,int a=){for(;t;t>>=,b=b*b%mod)if(t&)a=a*b%mod;return a;}
int fac[S],inv[S],pw[S],ipw[S],F[S],G[S],ans,x;
int C(int b,int t){return b<t?:fac[b]*inv[t]%mod*inv[b-t]%mod;}
void f(){
int totpos=;
for(int i=;i<;++i){
F[i]=((i?F[i-]:)+i*C(x-+i,i)%mod*ipw[x+i])%mod;
totpos=(totpos+C(x-+i,i)*ipw[x+i])%mod;
G[i]=(+i)*(+mod-totpos)%mod;
}
for(int i=S-;i;--i)F[i]=(F[i-]+G[i-])%mod;
}
main(){
freopen("B.in","r",stdin);freopen("B.out","w",stdout);
fac[]=;
for(int i=;i<S;++i)fac[i]=fac[i-]*i%mod;
inv[S-]=qpow(fac[S-],mod-);
for(int i=S-;~i;--i)inv[i]=inv[i+]*(i+)%mod;
pw[]=;
for(int i=;i<S;++i)pw[i]=pw[i-]*%mod;
ipw[S-]=qpow(pw[S-],mod-);
for(int i=S-;~i;--i)ipw[i]=ipw[i+]*%mod;
int n,y;scanf("%lld%lld",&n,&x);n--;ans=x;f();
while(n--)scanf("%lld",&y),ans=(ans+F[y])%mod;
printf("%lld\n",ans);
}

T3:C

不想写。细节多,题解还那么垃圾。

$O(n\ log \ n \ log \ a_i)$的暴力看懂了。就是离线询问(否则会MLE)枚举每一位的答案贡献。

首先对于每次询问我们把或当成加法。求出路径上所有点的权值和,以及距离之和。

然后把或当成加法的多余贡献就是两个值相与的值,求出每个答案与后的值从上面那个值里扣除就是答案。

可以发现二进制串在递增序列上是有循环节的。先考虑u到lca的贡献。

处理数组dp[i][j]表示从i号节点开始的完整循环节的长度为$2^j$的祖先链上的当前处理的这一位的$a_i$值与循环节的1的撞上的数的个数。

然后对于非完整循环节特殊处理一下。我的想法是(强调:这是我自己yy的可能不对):

再处理一个数组f[i][j]表示从i号点开始的长度为$2^j$的祖先链上的当前处理的这一位的$a_i$值为1的数的个数。也就是默认了距离值的这一位是1。

因为最后剩下的一段非完整循环节一定是一堆0,后面都是1。这样的话你倍增跳一下把0的都跳过,然后剩下的1用f数组就可以计算出来。

然后u到lca这一段就处理完了。对于v到lca的这一段,我们把v往上跳直到遇到第一个完整循环节开始的地方,这个跳可以类似的预处理。

然后剩下的就和u到lca一样了。只不过一个的循环是000011110000111100...这样的,另一个是111100001111000011....这样的。

那么你只要把前几个1排除在完整循环节之外进行处理,剩下的两边就完全一样了。

大神yxs写出来了得到了T70的好成绩(从上述代码细节你就可以感受到这题常数有多大)

心累。真心不想写。就这样吧。等yxs或其他大神AC之后我再update吧

[考试反思]1113csp-s模拟测试114:一梦的更多相关文章

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

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

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

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

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

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

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

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

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

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

  6. [考试反思]0714/0716,NOIP模拟测试3/4

    这几天时间比较紧啊(其实只是我效率有点低我在考虑要不要坐到后面去吹空调) 但是不管怎么说,考试反思还是要写的吧. 第三次考试反思没写总感觉缺了点什么,但是题都刷不完... 一进图论看他们刷题好快啊为什 ...

  7. [考试反思]1003csp-s模拟测试58:沉淀

    稳住阵脚. 还可以. 至少想拿到的分都拿到了,最后一题的确因为不会按秩合并和线段树分治而想不出来. 对拍了,暴力都拍了.挺稳的. 但是其实也有波折,险些被卡内存. 如果内存使用不连续或申请的内存全部使 ...

  8. [考试反思]0816NOIP模拟测试23

    210 210 210 170 还可以.暴力打满就rk4了? 但不管怎么说,总算是在改完题之后理直气壮的写考试反思了. T1是个dp,说水也不太水.(当然某脸只要A掉了一道题就要说那是水题) 我的思路 ...

  9. [考试反思]0801NOIP模拟测试11

    8月开门红. 放假回来果然像是神志不清一样. 但还是要接受这个事实. 嗯,说好听点,并列rank#7. 说难听点,垃圾rank#18. 都不用粘人名就知道我是哪一个吧... 因为图片不能太长,所以就不 ...

随机推荐

  1. 让外部的开发机直接访问Kubernetes群集内的服务!

    让外部的开发机直接访问Kubernetes群集内的服务! 1.场景 容器化+K8s编排已经是现在进行时把网站的多个项目设计为云原生(Cloud Native)或老项改造为云原生可以获得诸多能力例如无云 ...

  2. 大数据学习笔记——Hadoop编程实战之Mapreduce

    Hadoop编程实战——Mapreduce基本功能实现 此篇博客承接上一篇总结的HDFS编程实战,将会详细地对mapreduce的各种数据分析功能进行一个整理,由于实际工作中并不会过多地涉及原理,因此 ...

  3. 使用Gin+WebSocket在HTML中无插件播放RTSP

    在后台的开发中遇到了对接显示摄像头视频流的需求.目前获取海康及大华等主流的摄像头的视频流使用的基本都是RTSP协议.不过HTML页面并不能直接播放RTSP协议的视频流,查询了一番各种网页播放RTSP的 ...

  4. HPS端的GPIO如何控制

    该笔记主要记录HPS端的GPIO如何控制,包括控制LED和Key 1.GPIO地址映射 Peripheral Base Address 0xf000_0000 64M 2.HPS外设 (1)GPIO ...

  5. CCF-CSP题解 201612-4 压缩编码

    \(CSP\)也考\(DP\)的嘛...想了两小时贪心的我在宿舍凌乱... 还是智障+老花啊...这不是一道区间合并裸题嘛...石子合并啊... 再看看这\(3s\)的时限,\(O(n^3)\)都够了 ...

  6. java8-详解Lamda表达式

    一回顾与说明     通过之前发布的"Java8Lamda和Stream原理引入"一文章中你已经了解了为什么会有Lamda表达式的由来,Lamda表达式的基本语法等:Lamda表达 ...

  7. 画线缩放、瞳距缩放、Line延长到指定长度,内附效果,源码供应,解压就跑

    前言 公司项目需要做个画线缩放,我司称之为瞳距缩放,简而言之就是:2张图,从第一张图画一条线,再从第二个图画一条线,第二条线以第一条为基准,延长到一致的长度,并同比缩放图片:文字太枯燥,请先实例图 例 ...

  8. Java生鲜电商平台-生鲜系统中商品订单系统售后系统设计

    Java生鲜电商平台-生鲜系统中商品订单系统售后系统设计(服务订单履约系统) 说明: 电商之下,我们几乎能从电商平台上买到任何我们日常需要的商品,但是对于很多商品来说,用户购买发货后,只是整个交易流程 ...

  9. Supermap/Cesium 开发心得----本地视频接入播放

    在三维中,为了增加现实感.给人一种带入感,我们会采取接入视频的方式来实现,那么如何接入视频呢? 由于没有截至写文章为止,我没有视频流数据,所以只能采取本地视频文件的方式来做. 本文介绍结束视频的其中一 ...

  10. Python操作MySQL的一些坑

    pip安装库时遇到的问题   我使用ubuntu系统通过pip安装MySQLdb库的时候,报了一堆错,解决了半天,没搞定.然后安装另一个库pymysql一下就OK了,它们的功能都是一样的.这个问题我没 ...