Supercomputer 解題報告

Supercomputer

1394419-20190326165404902-1893383748.png

\(f_i\)為前\(i\)個時間內必須的完成的任務個數,那么答案就是
\[ \max_{i}\lceil\frac{f_i}{i}\rceil \]
現在要支持區間加和全局\(\max\)

考慮分塊,對每個塊維護一個\(tag\)表示加標記

塊內的\(\max\)則為
\[ \max_i \frac{1}{i}\times tag+\frac{f_i}{i} \]
則把\(k=\frac{1}{i},b=\frac{f_i}{i}\),就對一個塊維護一個關于直線的上凸殼

然后發現\(tag\)是單增的,所以可以均攤\(O(n)\)的在每個塊的凸殼上維護

修改的時候不滿一塊的暴力重構塊,否則打tag上去


Code:

#include <cstdio>
#include <cctype>
#include <cmath>
#include <algorithm>
#define ll long long
using std::max;
using std::min;
const int N=1e5+10;
const int B=350;
template <class T>
void read(T &x)
{x=0;char c=getchar();while(!isdigit(c)) c=getchar();while(isdigit(c)) x=x*10+c-'0',c=getchar();
}
int n,m,q,ans,T,L[B],R[B],belong[N],yuy[N];
struct koito_yuu
{int x,y;//k=1/x,b=y/xkoito_yuu(){}koito_yuu(int X,int Y){x=X,y=Y;}
};
bool ck(koito_yuu a,koito_yuu b,koito_yuu c)
{return (1.0*a.x*b.y-1.0*b.x*a.y)*(c.x-b.x)>=(1.0*b.x*c.y-1.0*c.x*b.y)*(b.x-a.x);
}
struct Block
{koito_yuu s[B];int tot,tag;void build(int x){tot=0;for(int i=L[x];i<=R[x];i++){koito_yuu pot=koito_yuu(i,yuy[i]);while(tot>1&&ck(pot,s[tot],s[tot-1])) --tot;s[++tot]=pot;}}void Move(){while(tot>1&&(1ll*(tag+s[tot].y)*s[tot-1].x)<=1ll*(tag+s[tot-1].y)*s[tot].x) --tot;ans=max(ans,(tag+s[tot].y-1)/s[tot].x+1);}
}bee[B];
void query()
{for(int i=1;i<=T;i++)bee[i].Move();
}
int main()
{freopen("computer.in","r",stdin);freopen("computer.out","w",stdout);read(n),read(m),read(q);for(int x,i=1;i<=m;i++) read(x),++yuy[x];for(int i=1;i<=n;i++) yuy[i]+=yuy[i-1];int b=sqrt(n)+1;T=(n-1)/b+1;for(int i=1;i<=T;i++){L[i]=R[i-1]+1,R[i]=min(i*b,n);for(int j=L[i];j<=R[i];j++) belong[j]=i;bee[i].build(i);}query();printf("%d\n",ans);for(int k,v,i=1;i<=q;i++){read(k),read(v);int bl=belong[v];for(int j=v;j<=R[bl];j++) yuy[j]+=k;bee[bl].build(bl);for(int j=bl+1;j<=T;j++) bee[j].tag+=k;query();printf("%d\n",ans);}return 0;
}

2019.3.26

轉載于:https://www.cnblogs.com/butterflydew/p/10601280.html

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

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

相關文章

OCS (錯誤代碼: 0-1-492)

http://hi.baidu.com/windowserver/blog/item/dcd6b851151d062d43a75b72.html 轉載于:https://www.cnblogs.com/hubj/archive/2010/06/12/1757279.html

javaScript第五天(2)

javaScript基礎 01.知識點-函數【重點】 學習函數的目的 就是為將重復的功能代碼包裝成一個工具(盒子), 方便程序員重復調用學習函數的路徑 定義函數調用函數為了讓函數的功能更加強大, 學習函數的 參數函數的返回值 函數的使用 函數的定義及調用 函數的定義 通過 function關…

How to ignore files and directories in subversion?

Step 1 Copy the files and directories to other place. Step 2 Delete the files and directories. Step 3 Commit. Step 4 Paste the files and directories from backup place. Step 5 Commit.轉載于:https://www.cnblogs.com/mouseleo/p/10605322.html

arguments使用

只有函數才有argumentsfunction fn(){console.log(arguments);console.log(arguments.length);console.log(arguments[2]);//我們可以按照數組的方式遍歷argumentsfor (let i 0; i < arguments.length; i) {console.log(arguments[i]);}}fn(1,2,3);偽數組 并不是真正意義上…

2.0 es6中forEach以及數組操作

前言&#xff1a; 小白的js之路...... 1. 遍歷數組/集合 forEach usernameArray []; //遍歷 users.forEach((user, index) > {let username user.name;//取出用戶名添加到數組usernameArray[index] username; }) 2. 數組過濾filter()和查找find() let arr s.filter( x &…

輸出GPLT

L1-023 輸出GPLT &#xff08;20 分)給定一個長度不超過10000的、僅由英文字母構成的字符串。請將字符重新調整順序&#xff0c;按GPLTGPLT....這樣的順序輸出&#xff0c;并忽略其它字符。當然&#xff0c;四種字符&#xff08;不區分大小寫&#xff09;的個數不一定是一樣多的…

javaScript第六天(1)

JavaScript基礎 核心知識點 對象 4種創建對象的方式操作對象&#xff08;取值&#xff0c;賦值&#xff09; 今日學習目標 能夠使用對象方式保存數據能夠理解自定義構造函數如何創建對象能夠獲取對象中的值及給對象賦值 對象 思考&#xff1a; 如何通過js函數將人的信息輸…

Reversing-x64Elf-100

一道很簡單的小題 作為python小白這道題主要是學習了一點python知識...... 可以看出來 sub_4006FD 這個函數是用來判斷輸入密碼是否正確的 我們看一下它的偽代碼&#xff1a; signed __int64 __fastcall sub_4006FD(__int64 a1) {signed int i; // [rsp14h] [rbp-24h]const ch…

javaScript第六天(2)

07-javaScript基礎 ? 函數其他部分 arguments [掌握] arguments 作用? 解決當函數的形參個數不確定的時候,通過arguments獲取實參的值如何使用arguments 獲取用戶傳遞實參的值? arguments 在函數中就是用來保存實參信息的偽數組 (可以按照數組的方式去遍歷, 但是不能使用數…

論wpf的設備無關性 - 簡書

論wpf的設備無關性 - 簡書 原文:論wpf的設備無關性 - 簡書 WPF從發布之日起&#xff0c;一直將“分辨率無關(resolution independence)”作為其亮點&#xff0c;聲稱使用WPF制作的用戶界面在輕巧的Ultra-Mobile PC的屏幕上和在50英寸的電視機上都能很好地顯示。微軟之所以稱WPF…

暑期學習總結6

本周書面學習時間大概6小時&#xff0c;代碼上5小時&#xff0c;java的基礎知識已經基本都學過一遍了&#xff0c;剩下的就是要鞏固&#xff0c;進行了一些實例操作&#xff0c;過程還算滿意&#xff0c;類的運用已經掌握了很多&#xff0c;現在已經習慣了java的類定義方法&…

javaScript第七天(1)

JavaScript基礎 核心知識點 Math對象中的方法數組對象中的方法字符串中的方法 今日學習目標 能夠掌握Math對象中的相關方法能夠掌握數組對象中的push方法能夠掌握操作字符串的方法 內置對象介紹 ? JavaScript組成&#xff1a; ECMAScript | DOM | BOM ? ECMA…

ISLR學習筆記(2)線性回歸

第三章 幾種常見的線性模型 1、簡單線性回歸 Y≈β0β1X 2、多元線性回歸 Y≈β0β1X1β2X2... 3、擴展線性回歸 Y≈β0β1X1β2X2β3X1X1 克服了多元線性模型 X1X1 與 X2X2 不協同作用的假設。 4、多項式回歸 Y≈β0β1X1β2X12β3log(X1)β4√X4 轉載于:https://www.cnblog…

淺談Aho-Corasick automaton(AC自動機)

Aho-Corasick automaton是什么&#xff1f; 要學會AC自動機&#xff0c;我們必須知道什么是Trie&#xff0c;也就是字典樹。Trie樹&#xff0c;又稱單詞查找樹或鍵樹&#xff0c;是一種樹形結構&#xff0c;是一種哈希樹的變種。典型應用是用于統計和排序大量的字符串&#xff…

javaScript第七天(2)

javaScript基礎 ? 對象其他部分 [理解] 自定義構造函數創建對象[掌握] //繼續簡化 自定義構造函數 function People(uName, uAge) {this.uName uName;this.uAge uAge; } // 如何通過自定義構造函數創建對象? var zs new People(張三, 20); console.log(zs);注意事項: 自定…

數據挖掘、機器學習書籍推薦!!

強烈推薦&#xff1a;《機器學習》 (西瓜書) 入門讀物&#xff1a; 《深入淺出數據分析》 這書挺簡單的&#xff0c;基本的內容都涉及了&#xff0c;說得也比較清楚&#xff0c;最后談到了R是大加分。難易程度&#xff1a;非常易。 《啤酒與尿布》 通過案例來說事情&#xff0c…

樓蘭圖騰(權值線段樹)

在完成了分配任務之后&#xff0c;西部314來到了樓蘭古城的西部。 相傳很久以前這片土地上(比樓蘭古城還早)生活著兩個部落&#xff0c;一個部落崇拜尖刀(‘V’)&#xff0c;一個部落崇拜鐵鍬(‘∧’)&#xff0c;他們分別用V和∧的形狀來代表各自部落的圖騰。 西部314在樓蘭古…

js(Dom+Bom)第一天(1)

JavaScript-DOM&#xff08;BOM&#xff09;操作 核心知識 獲取頁面元素事件設置樣式 學習目標 能夠使用id名,標簽名等方式獲取頁面中元素能夠給標簽注冊點擊事件,并實現對應效果能夠給標簽通過js方式設置樣式 JavaScript組成 ECMASCRIPT (基礎語法) DOM&#xff08;文檔對…

[HZNOI #koishi] Magic

[HZNOI #514] Magic 題意 給定一個 \(n\) 個點 \(m\) 條邊的有向圖, 每個點有兩個權值 \(a_i\) 和 \(b_i\), 可以以 \(b_i\) 的花費把第 \(i\) 個點的 \(a_i\) 變成 \(0\). 最后每個點 \(i\) 產生的花費為所有從 \(i\) 出發能通過一條有向邊直接到達的點 \(j\) 的 \(a_j\) 的 \…

同步與異步

同步&#xff1a; 做完一件事&#xff0c;再做另一件 煮好水&#xff0c;再拆泡面包裝 異步&#xff1a; 可以同時做好幾個任務 燒水&#xff0c;打開火之后&#xff0c;先去拆泡面包裝&#xff0c;等水開了&#xff0c;再停下拆包裝&#xff0c;去關掉火。。。。。 轉載于:htt…