1. 程式人生 > >bzoj2217:[Poi2011]Lollipop

bzoj2217:[Poi2011]Lollipop

容易發現題目給的條件對數值的維護增長很慢,故可使用調整法,具體細節見程式碼(好像強行多了一個log

#include<bits/stdc++.h>
#define rep(i,k,n) for(int i=k;i<=n;i++)
#define rep2(i,k,n) for(int i=k;i>=n;i--)
using namespace std;
void sc(int& x){x=0;char c=getchar();while(c>'9' || c<'0')c=getchar();
for(;c>='0' && c<='9'
;c=getchar())x=x*10+c-'0'; } const int N=1e6+7; int s[N],n,m,a[N],nxt[N],cc=N; int find(int x){ int l=1,r=n; while(l<r){ int mid=(l+r+1)>>1; if(s[mid]<=x)l=mid; else r=mid-1; }return l; } char c[N]; void solve(int& l,int& r,int q){ if(q==1){l=r=cc;return
;} if(s[r]-s[l-1]==q)return; if(a[l]==1)l++,r++; else{ int len1=nxt[l]-l; int len2=nxt[r]-r; if(len1+1<len2)l+=len1+1,r+=len1+1; else l+=len2-1,r+=len2; } } int main(){ scanf("%d%d%s",&n,&m,c+1);rep(i,1,n)if(c[i]=='T')a[i]=2;else a[i]=1
,cc=i; rep(i,1,n)s[i]=s[i-1]+a[i];int now=n+1; rep2(i,n,1){ nxt[i]=now; if(a[i]==1)now=i; } rep(i,1,m){ int q;sc(q); if(q>s[n])puts("NIE"); else{ int pos=find(q),l=1; solve(l,pos,q); if(pos>n)puts("NIE"); else printf("%d %d\n",l,pos); } } }

相關推薦

BZOJ2217: [Poi2011]Lollipop

clu lollipop isdigit ans line 奇偶性 -- zoj getchar 這題挺邪的,主要是觀察分析性質吧 首先對於一段區間,它肯定滿足以下條件之一: 1.左端點有 2 2.右端點有2 3.左右端點都有1 那麽就有,當前區間的答案的奇偶性相

bzoj2217:[Poi2011]Lollipop

容易發現題目給的條件對數值的維護增長很慢,故可使用調整法,具體細節見程式碼(好像強行多了一個log) #include<bits/stdc++.h> #define rep(i,k,n)

BZOJ2217】[Poi2011]Lollipop 亂搞

getch 記錄 spa style using 子序列 ++ brush highlight 【BZOJ2217】[Poi2011]Lollipop Description 有一個長度為n的序列a1,a2,...,an。其中ai要麽是1("W"),要麽是2("T"

BZOJ 2217: [Poi2011]Lollipop

若sum可行 sum-2一定可行 序列和為ans 找出和ans奇偶性不同的最大的ans,即最靠左或最靠右的1的位置 更新答案 有spj #include<cstdio> using namespace std; int L[2000005],R[2000005],a[20000

Bzoj2280 [Poi2011]Plot

solved submit scanf amp ring input 最小圓覆蓋 user 評測 Time Limit: 300 Sec Memory Limit: 128 MBSec Special JudgeSubmit: 392 Solved: 79 Desc

Android lollipop 更新問題

article sdn 地址 mirrors con class div 版本 ext 非常多朋友都說lollipop出來想試用一下,結果在網官下載的android studio 都是20版本號,也沒有看見更新到android 5.0。 我也在網上狂了一下,收集到一

BZOJ2527: [Poi2011]Meteors

分享 -- 維護 read try img amp inline rac 這個。。。一開始用的是longlong 然後改成int就wa了。。。。 時間墊底。。。。。 可怕 全局分治 然後用線段樹維護的時候直接永久化標記 不用下傳 然後

【BZOJ2216】[Poi2011]Lightning Conductor 決策單調性

隊列 節點 zoj blog output tdi 最小 class clas 【BZOJ2216】[Poi2011]Lightning Conductor Description 已知一個長度為n的序列a1,a2,...,an。對於每個1<=i<=n,

【bzoj2527】[Poi2011]Meteors 整體二分+樹狀數組

string size 單位 mod 直接 mes brush algorithm 成員 題目描述 有N個成員國。現在它發現了一顆新的星球,這顆星球的軌道被分為M份(第M份和第1份相鄰),第i份上有第Ai個國家的太空站。 這個星球經常會下隕石雨。BIU已經預測了接下來K

【BZOJ2529】[Poi2011]Sticks 貪心

cpp inline 排序 line 三角形 pre out truct using 【BZOJ2529】[Poi2011]Sticks Description 給出若幹木棍,每根木棍有特定的顏色和長度。問能否找到三條顏色不同的木棍構成一個三角形。(註意這裏所說的三

安卓權威編程指南 挑戰練習(第26章 在 Lollipop 設備上使用 JobService)

gallery sha params build 運行 intent ble 一次 lol 26.11 挑戰練習:在 Lollipop 設備上使用 JobService 請創建另一個 PollService 實現版本。新的 PollService 應該繼承 JobServ

bzoj 2276: [Poi2011]Temperature——單調隊列

連續 none input per open 路徑 span inpu 位置 Description 某國進行了連續n天的溫度測量,測量存在誤差,測量結果是第i天溫度在[l_i,r_i]範圍內。 求最長的連續的一段,滿足該段內可能溫度不降 第一行n 下面n行,每行

BZOJ2276: [Poi2011]Temperature

std opened 最長 hid 區間 ges 技術 emp tin n<=1000000個數,每個數的選擇範圍在Li到Ri<=1000000000之間,求最長能得到多長的連續不下降序列。 首先可以暴力,f[i][j]表示前i個數,最後一個數取j,然後瞎轉移就

[BZOJ] 2276: [Poi2011]Temperature

clu pan rep access int com tun sub out 2276: [Poi2011]Temperature Time Limit: 20 Sec Memory Limit: 32 MBSubmit: 731 Solved: 334[Subm

Android 5.0 Lollipop介紹

seq 手勢 不包含 傾斜 pan 配色方案 lol for gles Android Lollipop介紹 Android 5.0 Lollipop,此版本為用戶提供了豐富的新功能,並為開發者新增了數以千計的 API,它進一步擴展了 Android 的應用範圍,從手機

【BZOJ2525】[Poi2011]Dynamite 二分+樹形DP

接下來 family string style tput include n-1 poi mic 【BZOJ2525】[Poi2011]Dynamite Description Byteotian Cave的結構是一棵N個節點的樹,其中某些點上面已經安置了炸.藥,現

POI2011 MET-Meteors

define ret printf d+ post 一個 poi c++ esp 首先看上來就可以進行二分,但是答案是n個,所以我們進行整體二分,每次分成兩個集合,一個集合可以完成,一個不可以,然後繼續二分即可。 學習了Vergil學長的做法,偷懶用了vector,然後lu

BZOJ2212 [Poi2011]Tree Rotations 線段樹合並 逆序對

htm namespace 逆序 post php .html mat () targe 原文鏈接http://www.cnblogs.com/zhouzhendong/p/8079786.html 題目傳送門 - BZOJ3286 題意概括   給一棵n(1≤n≤20

BZOJ2277: [Poi2011]Strongbox

iostream 找到 using ide clu sse 數字 爆炸 規則 n<=10^14,0~n-1中有一些數是密碼,且滿足:a是密碼,b是密碼,那麽(a+b)%n也是密碼(a,b可相等),現小明試了m<=250000個數,前面都錯,最後一個對,問n個數中

【bzoj2216】[Poi2011]Lightning Conductor 1D1D動態規劃優化

規劃 sample long 得到 mes tput stream truct 優化 Description 已知一個長度為n的序列a1,a2,…,an。對於每個1<=i<=n,找到最小的非負整數p滿足 對於任意的j, aj < = a