【几何/分治】【最短路】【数学期望】Day 10.24

1、斜率

可以证明如果两点之间还有一点的话那么原来的两个点连线一定不会是最大斜率

然后我就写了个沙茶分治…………

其实根据上面的推论只用枚举相邻的两个点,扫一遍就可以了

 1 #include <cstdio>
 2 #include <algorithm>
 3 #include <iostream>
 4 using namespace std;
 5 typedef pair<int,int> P;
 6 int n,a,b;
 7 P p[500001];
 8 double ans;
 9 void solve(int l,int r)
10 {
11     if (l>=r) return;
12     int mid=(l+r)/2;
13     for (int i=l;i<=r;i++) if (i!=mid)
14     {
15         ans=max(ans,double(p[mid].second-p[i].second)/(p[mid].first-p[i].first));
16     }
17     solve(l,mid-1);solve(mid+1,r);
18 }
19 int main()
20 {
21     freopen("slope.in","r",stdin);
22     freopen("slope.out","w",stdout); 
23     scanf("%d",&n);
24     for (int i=1;i<=n;i++)
25     {
26         scanf("%d%d",&a,&b);
27         p[i]=P(a,b);
28     }
29     sort(p+1,p+n+1);
30     ans=double(p[2].second-p[1].second)/(p[2].first-p[1].first); 
31     solve(1,n);
32     printf("%.3f",ans);
33 } 

 

2、最优路径

这不就是原来做的过路费吗……

 1 #include <cstdio>
 2 #include <iostream>
 3 #include <queue>
 4 #include <cstring>
 5 #define ll long long
 6 using namespace std;
 7 typedef pair<int,int> P;
 8 struct E{
 9     int next,to,w;
10 }e[250001];
11 priority_queue<P,vector<P>,greater<P> > que;
12 int n,m,a,b,c,sz=0,head[501],v[501],reg[501],f[501];
13 ll w[501][501];
14 void insert(int a,int b,int w)
15 {
16     sz++;
17     e[sz].next=head[a];
18     head[a]=sz;
19     e[sz].to=b;
20     e[sz].w=w;
21 }
22 void dijkstra(int s)
23 {
24     memset(reg,0,sizeof(reg));
25     memset(f,0x7f,sizeof(f));
26     f[s]=1;
27     que.push(P(0,s));
28     while(!que.empty())
29     {
30         int x=que.top().second;que.pop();
31         if (reg[x]) continue;
32         reg[x]=1;
33         for (int i=head[x];i;i=e[i].next)
34         {
35             if (v[e[i].to]<=v[s]&&f[e[i].to]>max(f[x],e[i].w))
36             {
37                 f[e[i].to]=max(f[x],e[i].w);
38                 que.push(P(f[e[i].to],e[i].to));
39             }
40         }
41     }
42     for (int i=1;i<=n;i++)
43         for (int j=1;j<=n;j++)
44             if (reg[i]&&reg[j]) w[i][j]=min(w[i][j],(ll)max(f[i],f[j])*v[s]);
45 }
46 int main()
47 {
48     freopen("path.in","r",stdin);
49     freopen("path.out","w",stdout);
50     ios::sync_with_stdio(false); 
51     memset(w,0x7f,sizeof(w));
52     cin>>n>>m;
53     for (int i=1;i<=n;i++) cin>>v[i];
54     for (int i=1;i<=m;i++)
55     {
56         cin>>a>>b>>c; 
57         insert(a,b,c);insert(b,a,c);
58     }
59     for (int i=1;i<=n;i++) dijkstra(i);
60     for (int i=1;i<=n;i++)
61     {
62         for (int j=1;j<=n;j++)
63         {
64             if (i==j){
65                 cout<<0<<" ";
66             }else{
67                 if (w[i][j]==w[0][0])
68                     cout<<-1<<" ";
69                 else
70                     cout<<w[i][j]<<" ";
71             }
72         }
73         cout<<endl;
74     }
75 } 

3、小G的线段树

如果一个点上存在赋值语句,只有最后一个赋值语句会起作用,所以所有赋值语句的期望就是操作数的平均数

k个赋值操作把序列分割成了k+1个空位,注意到所有加法操作的位置都是等效的,由于加法操作只会在最后一个空位起作用,所以所有加法语句的期望就是操作数的总和乘上起作用的概率1/(k+1)

赋值语句的期望加上加法语句的期望就是所求的答案,然后在整个序列上差分即可

因为空间开成100001,当n=100000时右边界差分会访问越界,所以我决定以后都用const int N=所需空间+10的方式开空间

 1 #include <cstdio>
 2 typedef double db;
 3 typedef long long ll;
 4 using namespace std;
 5 const int N=100010;
 6 int n,m,q,c,l,r,x,a[N];
 7 ll s1[N],s2[N],z2[N],w1=0,w2=0,w3=0;
 8 db ans[N];
 9 int main()
10 {
11     freopen("segment.in","r",stdin);
12     freopen("segment.out","w",stdout);
13     scanf("%d%d%d",&n,&m,&q);
14     for (int i=1;i<=n;i++) scanf("%d",&a[i]);
15     for (int i=1;i<=m;i++)
16     {
17         scanf("%d%d%d%d",&c,&l,&r,&x);
18         if (c==1)
19             s1[l]+=x,s1[r+1]-=x;
20         else
21             s2[l]+=x,s2[r+1]-=x,z2[l]++,z2[r+1]--;
22     }
23     for (int i=1;i<=n;i++)
24     {
25         w1+=s1[i],w2+=s2[i],w3+=z2[i];
26         if (w3==0)
27             ans[i]=ans[i-1]+a[i]+w1;
28         else
29             ans[i]=ans[i-1]+1.0*w2/w3+1.0*w1/(w3+1);
30     }
31     for (int i=1;i<=q;i++)
32     {
33         scanf("%d%d",&l,&r);
34         printf("%.3lf\n",ans[r]-ans[l-1]);
35     }
36 }

 

转载于:https://www.cnblogs.com/algonote/p/7722927.html

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

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

相关文章

K8s 介绍

过去一段时间&#xff0c;公司事情比较多&#xff0c;现在稍微能好点&#xff0c;今天进一步验证自己K8S 集群环境&#xff0c;遇到不少问题&#xff0c; 发现从自己的master 上无法访问node 的pod&#xff0c; 然后一堆search 。 config 。。 [rootk8s-master ~]# systemctl s…

easypoi needmerge失效_EasyPOI简单用例,简单有效

用poi导出Excel表格&#xff0c;需要配置很多东西&#xff0c;也比较麻烦&#xff0c;这里使用poi的封装easypoi&#xff0c;可以快速配置&#xff0c;实现Excel或者word文件的导出。这里我们结合SpringMVC开发easypoi。1&#xff0c;导入以下3个.jar包:这里是springMVC和easyp…

禁止sethc.exe运行 防止3389的sethc后门

废话&#xff1a;在土司看到的一篇文章,发私信给那个哥们儿说让不让转载,结果还没回复我就在百度看到相同的文章。他自己也是转载的。这哥们儿ID迟早被ban 文章转载自:http://www.jb51.net/hack/64484.html 点“开始”&#xff0c;在“运行”中敲入gpedit.msc依次展开“用户配置…

Mac 与虚拟机中的linux集群共享文件目录设置

一、环境介绍 本机&#xff1a;Macos Big Sur系统 虚拟机软件&#xff1a;vmware-fusion 虚拟机上虚拟的linux - centos7 系统 二、实现的效果 在mac上创建一个/Users/SH-Server/vm-vagrant目录&#xff0c;作为之后和虚拟机linux系统 /data 文件夹的共享目录。 我们最终想…

jsp编程技术徐天凤课后答案_jsp编程技术教材课后习题.doc

jsp编程技术教材课后习题JSP编程技术习题集1.6 本 章 习 题思考题(1)为什么要为JDK设置环境变量&#xff1f;(2)Tomcat和JDK是什么关系&#xff1f;(3)什么是Web服务根目录、子目录、相对目录&#xff1f;如何配置虚拟目录&#xff1f;(4)什么是B/S模式&#xff1f;(5)JSP、Jav…

JVM知识(一)

java三大流&#xff1a;数据流、控制流、指令流 线程是执行程序的最小单元&#xff0c;一个线程中也有这些东西。 java 运行时数据区&#xff1a; 1.程序计数器 指向当前线程正在执行的字节码指令地址。如果此时从一个线程转为执行另一个线程&#xff0c;此时就会中断&#xff…

AWD-LSTM为什么这么棒?

摘要&#xff1a; AWD-LSTM为什么这么棒&#xff0c;看完你就明白啦&#xff01;AWD-LSTM是目前最优秀的语言模型之一。在众多的顶会论文中&#xff0c;对字级模型的研究都采用了AWD-LSTMs&#xff0c;并且它在字符级模型中的表现也同样出色。 本文回顾了论文——Regularizing …

Spread / Rest 操作符

Spread / Rest 操作符指的是 ...&#xff0c;具体是 Spread 还是 Rest 需要看上下文语境。 当被用于迭代器中时&#xff0c;它是一个 Spread 操作符&#xff1a;&#xff08;参数为数组&#xff09; function foo(x,y,z) {console.log(x,y,z); }let arr [1,2,3]; foo(...arr);…

python postman脚本自动化_如何用Postman做接口自动化测试

什么是自动化测试把人对软件的测试行为转化为由机器执行测试行为的一种实践。例如GUI自动化测试&#xff0c;模拟人去操作软件界面&#xff0c;把人从简单重复的劳动中解放出来本质是用代码去测试另一段代码&#xff0c;属于一种软件开发工作&#xff0c;已经开发完成的用例还必…

Mac上,为虚拟机集群上的每台虚拟机设置固定IP

一、环境介绍 本机&#xff1a;macOS系统 虚拟机软件&#xff1a;VMware Fusion 虚拟机上&#xff1a;centos7内核的Linux系统集群 二、为什么要为每台虚拟机设置固定ip 由于每次启动虚拟机&#xff0c;得到的ip可能不一样&#xff0c;这样对远程连接非常不友好&#xff0c…

朱晔的互联网架构实践心得S1E7:三十种架构设计模式(上)

设计模式是前人通过大量的实践总结出来的一些经验总结和最佳实践。在经过多年的软件开发实践之后&#xff0c;回过头来去看23种设计模式你会发现很多平时写代码的套路和OO的套路和设计模式里总结的类似&#xff0c;这也说明了你悟到的东西和别人悟到的一样&#xff0c;经过大量…

记一次某制造业ERP系统 CPU打爆事故分析

一&#xff1a;背景 1.讲故事前些天有位朋友微信找到我&#xff0c;说他的程序出现了CPU阶段性爆高&#xff0c;过了一会就下去了&#xff0c;咨询下这个爆高阶段程序内部到底发生了什么&#xff1f;画个图大概是下面这样&#xff0c;你懂的。按经验来说&#xff0c;这种情况一…

PC端和移动APP端CSS样式初始化

CSS样式初始化分为PC端和移动APP端 1.PC端&#xff1a;使用Normalize.css Normalize.css是一种CSS reset的替代方案。 我们创造normalize.css有下面这几个目的&#xff1a; 保护有用的浏览器默认样式而不是完全去掉它们一般化的样式&#xff1a;为大部分HTML元素提供修复浏览器…

FPGA浮点数定点化

因为在普通的fpga芯片里面&#xff0c;寄存器只可以表示无符号型&#xff0c;不可以表示小数&#xff0c;所以在计算比较精确的数值时&#xff0c;就需要做一些处理&#xff0c;不过在altera在Arria 10 中增加了硬核浮点DSP模块&#xff0c;这样更加适合硬件加速和做一些比较精…

框架实现修改功能的原理_JAVA集合框架的特点及实现原理简介

1.集合框架总体架构集合大致分为Set、List、Queue、Map四种体系,其中List,Set,Queue继承自Collection接口&#xff0c;Map为独立接口Set的实现类有:HashSet&#xff0c;LinkedHashSet&#xff0c;TreeSet...List下有ArrayList&#xff0c;Vector&#xff0c;LinkedList...Map下…

NPM报错终极大法

2019独角兽企业重金招聘Python工程师标准>>> 所有的错误基本上都跟node的版本相关 直接删除系统中的node 重新安装 sudo rm -rf /usr/local/{bin/{node,npm},lib/node_modules/npm,lib/node,share/man/*/node.*} 重新安装 $ n lts $ npm install -g npm $ n stable…

自己使用的一个.NET轻量开发结构

三个文件夹&#xff0c;第一个是放置前端部分&#xff0c;第二个是各种支持的类文件&#xff0c;第三个是单元测试文件。Core文件类库放置的是与数据库做交互的文件&#xff0c;以及一些第三方类库&#xff0c;还有与数据库连接的文件1.Lasy.Validator是一个基于Attribute验证器…

英语影视台词---八、the shawshank redemption

英语影视台词---八、the shawshank redemption 一、总结 一句话总结&#xff1a;肖申克的救赎 1、Its funny. On the outside, I was an honest man. Straight as an arrow. I had to come to prison to be a crook.&#xff1f; 这很有趣。 在外面&#xff0c;我是一个诚实的人…

10.python网络编程(socket server 实现并发 part 2)

一、基于tcp的socket通信的基本原理分析。基于tcp的socket通信&#xff0c;主要依靠两个循环&#xff0c;分别是连接循环和通信循环。这个前面的文章有写过&#xff0c;在这里就不再重复了。二、socketserver实现多并发的原理分析。1.server类&#xff1a;2.reques类。类继承关…

如何在一小时内更新100篇文章?-Evernote Sync插件介绍

上一篇“手把手教你制作微信小程序&#xff0c;开源、免费、快速搞定”&#xff0c;已经教会你如何快速制作一个小程序&#xff0c;但作为资讯类小程序&#xff0c;内容不可少&#xff0c;并且还需要及时更新。 但是&#xff0c;如果让你复制粘贴&#xff0c;可能还需要上传图片…