UVALive2678子序列

UVALive2678

http://122.207.68.93:9090/csuacmtrain/problem/viewProblem.action?id=453§

【題目描述】:n個正整數組成的序列。給定整數S,求長度最短的連續序列,使他們的和大于等于S。

【算法分析】:

【二分】:

全是正整數,保證取的連續序列長度越長,和越可能大于等于S,所以滿足二分的單調遞增的條件,而這里,我們要找的最優解是最小的長度,就是和剛剛好大于等于S的區間長度。

【區間和優化到O(N)】:

使用C[i]數組,做差求和。方法不細說。要求自己,以后遇到區間求和問題,自然就要想到這個。

【運籌分析】:

決策方案:所有區間段,sigm(n+(n-1).......+1)?==?O(n^2)注意n<=10^5

限制條件:累和大于等于S

最優評判標準:區間長度最小

【完整代碼】:

 1 #include<iostream>
 2 
 3 #include<stdio.h>
 4 
 5 #include<string.h>
 6 
 7 #include<algorithm>
 8 
 9 #include<stdlib.h>
10 
11 #include<math.h>
12 
13 #include<queue>
14 
15 #include<vector>
16 
17 #include<map>
18 
19 #define MAXN 100000+5
20 
21 #define MAXM 20000+5
22 
23 #define oo 9556531
24 
25 #define eps 0.000001
26 
27 #define PI acos(-1.0)//這個精確度高一些
28 
29 #define REP1(i,an) for(int i=0;i<=(n);i++)
30 
31 #define REP2(i,n) for(int i=1;i<=(n);i++)
32 
33 using namespace std;
34 
35 //這道題不是dp,而是二分,一是因為dp本身會超時,二是連續的狀態是單調遞增的
36 
37 int A[MAXN];
38 
39 int C[MAXN];
40 
41 int n,s;
42 
43 bool isok(int l)
44 
45 {
46 
47     for(int i=l;i<=n;i++)
48 
49     if(C[i]-C[i-l]>=s) return true;//優化到O(n)
50 
51     return false;
52 
53 }
54 
55 int main()
56 
57 {
58 
59     while(cin>>n>>s)
60 
61     {
62 
63         C[0]=0;
64 
65         for(int i=1;i<=n;i++)
66 
67         {
68 
69             cin>>A[i];
70 
71             C[i]=C[i-1]+A[i];
72 
73         }
74 
75         int l=1,r=n+1;
76 
77         while(l<r)//邊界條件,保證能夠跳出循環,找不到極值也可,畫狀態圖確定
78 
79         {
80 
81             int m=(l+r)/2;
82 
83             if (isok(m)) r=m;else l=m+1;//根據除2取左的特點,保證能取到極值點
84 
85         }
86 
87         if (isok(l)) cout<<l<<endl;else cout<<0<<endl;
88 
89     }
90 
91     return 0;
92 
93 }

?

?

【關鍵詞】:二分,思維

轉載于:https://www.cnblogs.com/little-w/p/3525273.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/260890.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/260890.shtml
英文地址,請注明出處:http://en.pswp.cn/news/260890.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Jupyter notebook 使用過程中的一些小技巧總結

Jupyter notebook 小技巧 這是自己使用Jupyter notebook 的過程&#xff0c;遇到的一些問題&#xff0c;還有一些使用的小技巧&#xff0c;希望可以幫且大家。會不定時更新 code 轉 markdown&#xff1a; 按鍵 M code 轉 markdown&#xff1a; 按鍵 Y 換行&#xff1a;打完一…

IOS 文件讀取4種方法 轉字符串 和data

//第一種方法&#xff1a; NSFileManager實例方法讀取數據NSArray* paths NSSearchPathForDirectoriesInDomains(NSDesktopDirectory, NSUserDomainMask, YES);NSString* thepath [paths lastObject];thepath [thepath stringByAppendingPathComponent:"fd_list.txt&qu…

csgo怎么控制電腦玩家_電腦遠程控制怎么弄

本教程以“Win 10”系統為例進行演示。方法一&#xff1a;1/6在“此電腦”單擊鼠標右鍵選擇“屬性”2/6在彈出窗口中點擊“遠程設置”3/6勾選“允許遠程協助連接這臺計算機”&#xff0c;然后點擊應用并確定4/6在微軟小娜搜索“mstsc”5/6打開“遠程桌面連接”6/6輸入對方的IP地…

HTML 5 的自定義 data-* 屬性和jquery的data()方法的使用

HTML 5 的自定義 data-* 屬性和jquery的data()方法的使用 人們總喜歡往HTML標簽上添加自定義屬性來存儲和操作數據。但這樣做的問題是&#xff0c;你不知道將來會不會有其它腳本把你的自定義屬性給重置掉&#xff0c;此外&#xff0c;你這樣做也會導致html語法上不符合Html規范…

java。接口和抽象類區別

接口和抽象類區別 a.抽象類里可以有非抽象方法 接口里只能有抽象方法 b.接口是抽象類的變體&#xff0c;再接口中所有方法都是抽象的轉載于:https://www.cnblogs.com/zhaozhaozhang/p/5759714.html

MNIST 手寫數字識別,我是如何做到886個可訓練參數,識別率達到98.2%? (參數、模型壓縮), Keras實現,模型優化

一 項目展示 下面可以看到驗證集可以到了0.9823了&#xff0c;實際上&#xff0c;在下面的另外一個訓練&#xff0c;可以得到0.9839&#xff0c;我保守的寫了0.982 二 項目參數展示 我們先來看看LeNet 5 的結構與參數&#xff0c;參數有61&#xff0c;706個。 這個是我用…

javascript 計算兩個坐標的距離 米_土方全面應用計算

各種土方量的計算方法匯總8.2.1 DTM法土方計算由DTM模型來計算土方量是根據實地測定的地面點坐標(X&#xff0c;Y&#xff0c;Z)和設計高程&#xff0c;通過生成三角網來計算每一個三棱錐的填挖方量&#xff0c;最后累計得到指定范圍內填方和挖方的土方量&#xff0c;并繪出填…

VS2008 AJAX控件介紹

1 Accordion 2 AccordionPane 實現多面板&#xff0c;每次都只顯示一個&#xff0c;其他收藏起來&#xff0c;可以設置顯示隱藏的時間和漸變效果哦 3 AlwaysVisibleControlExtender 這個東西是將VerticalSide的值設置好后無論頁面的滾動條滾動&#xff0c;這個目標控件一直都顯…

py文件轉exe時包含paramiko模塊出錯解決方法

問題描述&#xff1a;python代碼中包含paramiko模塊的遠程登錄ssh&#xff0c;在用pyInstaller轉為exe時報錯&#xff0c; 報錯提示為“No handlers could be found for logger "paramiko.transport" 出錯位置&#xff1a; ssh paramiko.SSHClient() ssh.set_missin…

unity 陽光插件_網絡廣告,陽光創信保駕護航

網絡廣告 就找陽光創信。網絡營銷的技術基礎主要是以計算機網絡技術為代表的信息技術。計算機網絡是現代通信技術與計算機技術相結合的產物&#xff0c;它把分布在不同地理區域的計算機與專門的外部設備用通信線路互連成一個規模大、功能強的網絡&#xff0c;從而使眾多的計算機…

第2章 Python 數字圖像處理(DIP) --數字圖像基礎1 - 視覺感知要素 - 亮度適應與辨別

數字圖像基礎1視覺感知要素亮度適應與辨別import sys import numpy as np import cv2 import matplotlib import matplotlib.pyplot as plt import PIL from PIL import Imageprint(f"Python version: {sys.version}") print(f"Numpy version: {np.__version__…

快速冪與快速乘法

List 快速冪與快速乘法 ListKnowledge快速冪 原理code快速乘法 原理codeKnowledge 快速冪 原理 a^b%p 采用二進制得思想&#xff0c;將b轉化為二進制數。 b c02^0c12^1c22^2c32^3……cn2^n a^b a^(a12^0)a^(c12^1)……a^(cn2^n) 所以我們可以在log(b)的時間內求出a^(2^0)…

Java程序設計 圖形用戶界面 小巫版簡易計算器

/** 作者&#xff1a;wwj 時間&#xff1a;2012/4/13 功能&#xff1a;實現一個計算器應用程序實驗要求&#xff1a;編寫一個模擬計算器的應用程序&#xff0c;使用面板和網格布局&#xff0c; 添加一個文本框&#xff0c;10個數字按鈕&#xff08;0~9&#xff09;&#xff0c;…

phpcms文件結構

主要目錄部分 /admin 管理后臺目錄 -- /skin/ 后臺樣式 -- /templates/ 后臺樣式模板/api api接口 /corpandresize 在線圖片處理 -- /css/ csss樣式 -- /images/ 圖片 -- /js/ 引用js文件 -- /tmp/ 臨時文件/data 數據緩存…

第1章 Python 數字圖像處理(DIP) --緒論

Python 數字圖像處理 關于本專欄 此專欄為 Python 數字圖像處理&#xff08;DIP&#xff09;&#xff08;岡薩雷斯版&#xff09;&#xff0c;專欄里文章的內容都是來自書里&#xff0c;全部手打&#xff0c;非OCR&#xff0c;因為很多公式&#xff0c;都是用LaTex輸入&#xf…

phython在file同時寫入兩個_輕松支撐百萬級數據點寫入 京東智聯云時序數據庫HoraeDB架構解密...

本文將通過對時序數據的基本概念、應用場景以及京東智聯云時序數據庫HoraeDB的介紹&#xff0c;為大家揭秘HoraeDB的核心技術架構和解決方案。首先我們來了解下時序數據庫的基本概念。時序數據庫全稱時間序列數據庫&#xff0c;主要用于處理帶時間標簽的數據&#xff0c;帶時間…

飛雪迎春

轉載于:https://www.cnblogs.com/ysx4221/p/3537810.html

高可用集群技術之corosync應用詳解(一)

Corosync概述:Corosync是集群管理套件的一部分&#xff0c;它在傳遞信息的時候可以通過一個簡單的配置文件來定義信息傳遞的方式和協議等。它是一個新興的軟件&#xff0c;2008年推出&#xff0c;但其實它并不是一個真正意義上的新軟件&#xff0c;在2002年的時候有一個項目Ope…

一天總結

這幾天忙著弄畢業設計和論文&#xff0c;有好幾天都沒總結了&#xff01;學習進度也慢了下來&#xff01;接下幾天把畢業答辯弄好后&#xff01;把精力放在數據庫和編程熟練度上&#xff01;還有很多要學習的多看書多敲代碼&#xff01;最重要的是要多思考&#xff0c;要有自己…

電腦dns_win10系統dns錯誤如何解決「系統天地」

最近有位win10系統用戶在使用電腦的過程當中&#xff0c;碰到了dns錯誤的情況&#xff0c;用戶不知道如何解決&#xff0c;為此非常苦惱&#xff0c;那么win10系統dns錯誤如何解決呢?下面為大家分享win10電腦dns錯誤的解決方法。第一步&#xff1a;使用 ipconfig /flushdns 命…