NOIP模拟测试10「大佬·辣鸡·模板」

大佬

显然假期望

我奇思妙想出了一个式子$f[i]=f[i-1]+\sum\limits_{j=1}^{j<=m} C_{k \times j}^{k}\times w[j]$

然后一想不对得容斥

于是我得到$f[i]=f[i-1]+\sum\limits_{j=1}^{j<=m} C_{j\times(k-1)}^{k-1} \times w[j]$

但还是不对

现在思考第一个式子为什么不对

我们枚举矩阵选数

1 2 3

1 2 3

1 2 3

这样我们C的话概率会很鬼$\frac {4}{12}$$\times$$\frac {3}{11}$$\times$$\frac {2}{10}$

显然应该是$\frac 1 3$$\times $$\frac 1 3$$\times$$\frac 1 3$

我算小了

真的是小了吗?

思考第二个式子为什么不对,显然我们如果这样做应该再乘$C_{k}^{1}$但这么乘起来会重复

1111111会被多贡献很多回

还是要容斥

然后考试时我思维就停止了

我们或许可以换种思路考虑

同样是一个区间,我们这样算区间贡献

$\sum\limits_{j=1}^{j<=m} j^k-(j-1)^k$

理解一下

$j^k$表示$<=j$随便选,然后再容斥掉$(j-1)^k$(所有都比j小,选不到j)

得到贡献

然后再用f转移即可

#include<bits/stdc++.h>
#define ll long long
#define A 700000
using namespace std;
const ll mod=1e9+7;
ll n,m,k,sumday,w[A],ni,ans=0;
inline ll meng(ll x,ll k){ll ans=1;for(;k;k>>=1,x=x*x%mod)if(k&1)ans=ans*x%mod;return ans;
}
int main(){scanf("%lld%lld%lld",&n,&m,&k);if(k>n) {puts("0");return 0;}ni=1;for(ll i=1;i<=m;i++)scanf("%lld",&w[i]);for(ll i=1;i<=m;i++)((ans=(ans%mod+(meng(i,k)%mod-meng(i-1,k)%mod+mod)*w[i]%mod)%mod))%=mod;ans=ans*(n-k+1)%mod;ni=meng(meng(m,k),mod-2)%mod;cout<<ans%mod*ni%mod<<endl;
}

 辣鸡

考试历程:

想到$n^2$过不了应该是$n^log$的,或许是$n^{log^2}$

反正$n^2$能过我吃掉键盘

然后我就思考,我tm应该用什么呢,CDQ?树状数组?线段树?权值线段树?还是像上次光那个题一样的傻逼大模拟?

偶对了,一定是像光那个题一样的傻逼题。

但我的光现在还没有过啊。。

这个题暴力分好少啊

然后我还是打了个普通$n^2$然后发现它炸了。

我发现难以调出来还是改成了xy相关

考完后

这个题还真$n^2$能过

完了我没有立flag

后来得知是优化过的$n^2$

打起来像插头dp

首先矩阵内的贡献我们可以用(x2-x1)*(y2-y1)*2算出来

然后矩阵之间分很多种情况

然而每一种都比较简单,比插头简单的多

方格表示过于,,,容易出现各种错误,格点表示

 

具体还是看代码

#include<bits/stdc++.h>
using namespace std;
#define ll long long
#define A 1100000
struct node{ll x1,x2,y1,y2;friend bool operator <(const node a,const node b){return ((a.x1==b.x1)?a.y1<b.y1:a.x1<b.x1);}
}nd[A];
ll ans=0,n;
int main(){scanf("%lld",&n);for(ll i=1;i<=n;i++){scanf("%lld%lld%lld%lld",&nd[i].x1,&nd[i].y1,&nd[i].x2,&nd[i].y2);ans+=(nd[i].x2-nd[i].x1)*(nd[i].y2-nd[i].y1)*2;}sort(nd+1,nd+n+1);for(ll i=1;i<n;i++){for(ll j=i+1;j<=n;j++){if(nd[j].x1>nd[i].x2+1) break;if(nd[i].y2+1<nd[j].y1||nd[i].y1-1>nd[j].y2) continue;
//            printf("ix1=%lld iy1=%lld jx1=%lld jy1=%lld\n",nd[i].x1,nd[i].y1,nd[j].x1,nd[j].y1);if(nd[j].x1>nd[i].x2){if(nd[i].y2<nd[j].y1||nd[i].y1>nd[j].y2) ans++;else if(nd[i].y1==nd[j].y1){if(nd[i].y2==nd[j].y2)ans+=(nd[i].y2-nd[i].y1)*2;else if(nd[i].y2<nd[j].y2) ans+=(nd[i].y2-nd[i].y1)*2+1;else if(nd[i].y2>nd[j].y2)ans+=(nd[j].y2-nd[i].y1)*2+1;}else if(nd[i].y2==nd[j].y2){if(nd[i].y1==nd[j].y1)ans+=(nd[i].y2-nd[j].y1)*2;else if(nd[i].y1<nd[j].y1)ans+=(nd[i].y2-nd[j].y1)*2+1;else if(nd[i].y1>nd[j].y1)ans+=(nd[i].y2-nd[i].y1)*2+1;}else if(nd[i].y2>nd[j].y2&&nd[i].y1<nd[j].y1)ans+=(nd[j].y2-nd[j].y1)*2+2;else if(nd[i].y2<nd[j].y2&&nd[i].y1<nd[j].y1)ans+=(nd[i].y2-nd[j].y1)*2+2;else if(nd[i].y2>nd[j].y2&&nd[i].y1>nd[j].y1)ans+=(nd[j].y2-nd[i].y1)*2+2;else if(nd[i].y2<nd[j].y2&&nd[i].y1>nd[j].y1)ans+=(nd[i].y2-nd[i].y1)*2+2;
//                printf("second%lld\n",ans);
            }else{if(nd[i].x1==nd[j].x1){if(nd[i].x2==nd[j].x2)ans+=(nd[i].x2-nd[i].x1)*2;else if(nd[i].x2<nd[j].x2) ans+=(nd[i].x2-nd[i].x1)*2+1;else if(nd[i].x2>nd[j].x2)ans+=(nd[j].x2-nd[i].x1)*2+1;}else if(nd[i].x2==nd[j].x2){if(nd[i].x1==nd[j].x1)ans+=(nd[i].x2-nd[j].x1)*2;else if(nd[i].x1<nd[j].x1)ans+=(nd[i].x2-nd[j].x1)*2+1;else if(nd[i].x1>nd[j].x1)ans+=(nd[i].x2-nd[i].x1)*2+1;}else if(nd[i].x2>nd[j].x2)ans+=(nd[j].x2-nd[j].x1)*2+2;else if(nd[i].x1<nd[j].x1&&nd[i].x2<nd[j].x2)ans+=(nd[i].x2-nd[j].x1)*2+2;
//                printf("frist%lld\n",ans);
            }
//            printf("i=%lld j=%lld ans=%lld\n",i,j,ans);
        }}cout<<ans<<endl;
}

 模板

我一开始确实以为是模板

然后就开始打了,树差,线段树,权值线段树,合并往上仍

不就是和雨天的尾巴差不多的一道题目吗 AC预订

然后越想越不对,觉得难以维护桶

看数据范围不维护桶勉强可以70分

那就先得70分吧

然后我就打炸了,看着最后时间将至赶紧删了打暴力

暴力树上差分还有30分,树上差分打对就行

然后树上差分我觉得也不行,也是相当难维护,set,vector,map,multiset往上仍,但无济于事

最小的点是10 10 10,打个纯暴力还有10分呢

我成功奶死了自己

0分!

tqltqltqltqltqltqltqltqltqltqltqltqltqltqltqltqltqltqltqltqltqltqltqltqltqltqltqltqltqltqltqltqltqltqltqltqltqltqltqltqltqltql

说一下这个怎么做

前置知识:

启发式合并

线段树

 

注意很多细节,我会在启发式合并中具体讲

转载于:https://www.cnblogs.com/znsbc-13/p/11264230.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/349851.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

activemq 持久订阅_ActiveMQ群集,持久订阅者和虚拟主题可助您一臂之力

activemq 持久订阅因此&#xff0c;您希望使用ActiveMQ跨分布式主题进行发布-订阅&#xff0c;并且要可靠。 您可以使用永久订阅&#xff0c;对吗&#xff1f; 可以&#xff0c;但是&#xff0c;如果您将群集与ActiveMQ一起使用&#xff0c;则可能会遇到意外的行为。 我最近在一…

会计电算化算不算计算机专业,成都会计学校会计电算化专业介绍

由于会计的火热&#xff0c;有很多同学都在咨询老师想要了解成都会计学校会计电算化专业&#xff0c;老师也整理了相关内容为同学们作为参考&#xff0c;希望对同学们有所帮助。就是将计算机信息技术应用到会计实务中&#xff0c;实现对会计信息的管理。会计电算化从20世纪50年…

给APK签名,修改签名

简介&#xff1a; 本来是不需要签名的&#xff0c;但是我有个android的专用设备&#xff0c;限制安装&#xff0c;但是售后给我通过了一个证书的验证。 那么我想装什么软件&#xff0c;就需要这个证书验证。 现在记录一下签名的主要过程&#xff0c;还有修改签名的方法。 一&am…

Neo4j:Cypher –删除重复的节点

我最近在处理的图上遇到问题&#xff0c;因为我没有应用任何唯一的约束 &#xff0c;我设法创建了重复的节点。 我想删除重复项&#xff0c;并遇到了吉米鲁茨&#xff08;Jimmy Ruts&#xff09;的精彩文章 &#xff0c;其中显示了一些方法。 让我们首先创建一个包含一些重复…

计算机学英文是什么,“计算机科学与技术专业本科课程”的英文翻译是什么?...

1计算机导论 Intorduction of Computer2高等数学 Avanced Mathematics3线性代数 Linear Alberia4离散数学 Discrete Mathematics5数值分析 Numerical value Analysis6大学英语 Colleage English7模拟电子电路 Analog Electronic Circuit8数字电子电路 Digital Electronic Circu…

Pearson相关系数 - Pearson's Correlation Coefficient

Pearson相关系数用来衡量两个数据集合是否在一条线上面。其计算公式为&#xff1a;一个具体的计算的例子&#xff1a;X Y1 22 53 6原文地址&#xff1a;http://woodstudio.javaeye.com/blog/141005 转载于:https://www.cnblogs.com/cmleung/archive/2009/12/09/1619922.html

swfobject.embedSWF属性与用法

swfobject.embedSWF属性与用法2010-06-29 09:47/点击数( 2218)swfobject.embedSWF(swfUrl, id, width, height, version, expressInstallSwfurl, flashvars, params, attributes)有5个必须的参数和4个可选的参数&#xff1a; swfUrl&#xff08;String&#xff0c;必须的&#…

台式计算机装机软件选择,装机软件哪个好?小编教你最好的装机软件推荐

金山重装高手是一款傻瓜式重装系统软件&#xff0c;一键系统重装&#xff0c;解决系统慢、卡、报 错、蓝屏等问题。电脑使用时间长了会让系统运行变得缓慢&#xff0c;通常我们都会对系统进行重装&#xff0c;很多用户对重装系统一窍不通&#xff0c;不敢动手操作&#xff0c;那…

Vaadin提示:以声明方式构建UI

如果您使用了GWT&#xff0c;那么您可能会发现UiBinder对于设计复杂的UI很有用。 在有关Vaadin的系列文章中&#xff0c;我们希望在Vaadin和GWT之间得出相似之处。 Vaadin提供了多种开箱即用的工具和组件&#xff0c;用于构建复杂且美观的UI。 其中之一是可以像UiBinder那样声明…

奇怪的道路

DeepinC的题解 考场AC nb%%%%%%%%%%%%%%%%%% 2019/4/27Day1 T3 奇怪的道路step1&#xff1a;复杂度分析1< n < 30, 0 < m < 30, 1 < K < 8.按照习惯&#xff0c;正解复杂度一般在1e6-1e8级别而且往往复杂度关系最大的就是最小的那个数对&#xff0c;抓住那个…

江苏省专转本计算机题知识点,江苏专转本计算机真题17

61、在Word 2003中&#xff0c;下列关于查找操作的叙述&#xff0c;正确的是 。A、使用查找命令时&#xff0c;可以区分全角和半角字符&#xff0c;但不能区分大小写B、不支持用通配符来描述查找内容C、查找时只能从文档开始处进行D、除了可以按文字的内容进行查找&#xff0c;…

圣杯布局总结

1.左侧定宽,右侧自适应布局 html部分 <div class"parent"><div class"layout_left">左边宽度固定</div><div class"layout_main">主内容宽度自适应</div> </div>  css部分 <style>*{margin:0;paddin…

数据包捕获计算机网络实训,计算机网络-使用网络协议分析器捕捉和分析协议数据包...

广州大学学生实验报告开课学院及实验室&#xff1a;计算机科学与工程实验室2014年11月28日一、实验目的(1)熟悉ethereal的使用(2)验证各种协议数据包格式(3)学会捕捉并分析各种数据包。二、实验环境1&#xff0e;MacBook Pro2&#xff0e;Mac OS 10.10.13..Wireshark三、实验内…

背压加载文件– RxJava常见问题解答

事实证明&#xff0c;将文件作为流进行处理非常有效且方便。 许多人似乎忘记了&#xff0c;自Java 8&#xff08;3年多&#xff01;&#xff09;以来&#xff0c;我们可以很容易地将任何文件变成一行代码&#xff1a; String filePath "foobar.txt"; try (Buffered…

CISCN final 几道web题总结

因为都有源码&#xff0c;所以这里直接从源码开始分析&#xff1a; 1.Easy web 这道题本来的意思应该是通过注入来load_file读取config.php来泄露cookie的加密密钥&#xff0c;从而伪造身份进行登陆再上传shell 这里本来addslashes以后就基本没法注入&#xff0c;但是这里却多了…

初一计算机下册理论知识,初中信息技术七年级下册(第七版)

内容简介暂无内容目录1  计算机图片与动画 ……………………………………………11.1  图片处理 ……………………………………………………11.1.1  活动 …………………………………………………………1活动1  制作校园风景人物画册 …………………………………1活动2  制…

南邮计算机学院是211,南京邮电大学是211还是985

南京邮电大学曾经是双非高校&#xff0c;目前进入了世界学科建设高校。而南京农业大学是211工程大学&#xff0c;现在也是世界学科建设高校。从学校的牌子上来看&#xff0c;南京农业大学要更具有影响力。而我们今天要和大家分享的是南京邮电大学&#xff0c;那问题来了南京邮电…

java 运行 .jar 文件乱码

http://yang3wei.github.io/blog/2013/02/10/java-dfile-dot-encoding-equals-utf-8-gan-diao-luan-ma/ 启动时加参数-Dfile.encodingUTF-8转载于:https://www.cnblogs.com/easyc/p/6385385.html

php cdi_涉及CDI和JSF的过期对话的定制错误页面

php cdi自上次写博客以来已经有一段时间了。 我一直在想写一些技术博客&#xff0c;但最终却忙于其他事情。 上周&#xff0c;在Coderanch论坛上进行了非常有趣的讨论。 甚至更有趣&#xff0c;因为它涉及JBoss。 熟悉Java EE Web应用程序的开发人员会知道&#xff0c;Web应用…

石家庄计算机职业学院张秋玉,九龙坡有什么大学

2019九龙坡有哪些大学&#xff1f;九龙坡所有大学名单【教育部最新8所】九龙坡有哪些大学是广大考生和家长朋友们比较关心的&#xff0c;以下是教育部最新公布的九龙坡所有大学名单&#xff0c;包含一本、二本、三本和大专总共8所大学&#xff0c;仅供参考。2019九龙坡大学名单…