【幾何/分治】【最短路】【數學期望】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.pswp.cn/news/282056.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/282056.shtml
英文地址,請注明出處:http://en.pswp.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;可能還需要上傳圖片…