繼續上節;
poj3320;
題目大意;求複習最少的連續頁數,但包含所有的知識點;
輸入為;有幾頁,每頁包含什麼知識點;(1 ≤ p ≤ 1000000);
輸出;最少連續的但可以全部複習到的頁數;
首先要確定要使用set,map,和尺取法;
set;因為知識都是單一的;滿足用set來儲存;————set的大小就是知識點的個數;
map;因為每頁都對應著乙個知識點;存在對映關係;————map對應著每個知識點有多少頁了;
尺取法;應用於求最優連續子串行;所以他也當仁不讓;————查詢最優子串行;
先看**;
//尺取法加set,map;
#include
#include
#include
#include
#include
using
namespace
std;
int a[1000005];
int main()
m = c.size();
int l = 0 , r = 0 , ans = n+1,sum = 0;
while(1)
printf("%d\n",ans);
}return
0;}
主要還是來研究尺取法吧;
while(1)
大迴圈while(1);是為了進行多次查詢;
中間的小while是為了進行移動查詢;
1,直到找到所有知識點也就是sum=m時,則進行下面的記錄最小頁數並考慮是否向前移動;
2,或者是直到搜尋完畢,r=n並且存在sum
演算法 尺取法
我們先來介紹一下尺取法。尺取法,顧名思義,像尺子一樣,一塊一塊的擷取。題目翻譯 給定長度為n的數列整數a0,a1,a2,a3 an 1以及整數s。求出綜合不小於s的連續子串行的長度的最小值。如果解不存在,則輸出0。限制條件 100s 10 8 這裡我們拿第一組測試資料舉例子,即 n 10,s 15,...
尺取法練習
mr wolfram 的csdn 部落格 hopeforbetter的csdn部落格,尺取法顧名思義就像尺子一樣,當測量乙個物體時,你不一定從開始的位置測量,你可以從任意乙個位置st開始,當然前提是尺子夠長,然後你再讀出尾部en的數,尾部減去開始的位置en st,就是這個物體的長度。尺取法就是這個思...
尺取法基礎
p1638 逛畫展 題意 求最短區間包含所有畫家。思路 利用兩個變數來維護區間,如果區間不滿足條件r 滿足的話,l 直到區間最小。includeusing namespace std int a 1000005 b 1000005 int main b a l if b a l 0 k l else...