BZOJ3236 [Ahoi2013]作業

昨天晚上做的。。。差錯一直查到今天= =

最后沒辦法問管理員要了數據才知道原來ans數組開小了233,簡直沙茶

?

這道題不就是裸的莫隊嘛= =|||

只要用樹狀數組維護當前的兩種個數即可。

?

  1 /**************************************************************
  2     Problem: 3236
  3     User: rausen
  4     Language: C++
  5     Result: Accepted
  6     Time:79318 ms
  7     Memory:66252 kb
  8 ****************************************************************/
  9  
 10 #include <cstdio>
 11 #include <cmath>
 12 #include <algorithm>
 13  
 14 #define lowbit(x) x & -x
 15 using namespace std;
 16 const int N = 100005;
 17 const int M = 1000005;
 18 const int Maxlen = 37000005;
 19  
 20 int n, size, Q;
 21 int BIT[2][N], cnt[N], pos[N], a[N];
 22 int ans1[M], ans2[M];
 23 int Len, Left;
 24 char buf[Maxlen];
 25  
 26 struct Query {
 27     int l, r, a, b, w;
 28 } q[M];
 29 inline bool operator < (const Query &a, const Query &b) {
 30     return pos[a.l] == pos[b.l] ? a.r < b.r : pos[a.l] < pos[b.l];
 31 }
 32 inline bool cmp_id (const Query &a, const Query &b) {
 33     return a.w < b.w;
 34 }
 35  
 36 inline int read() {
 37     int x = 0;
 38     while (buf[Left] < '0' || '9' < buf[Left])
 39         ++Left;
 40     while ('0' <= buf[Left] && buf[Left] <= '9')
 41         x = x * 10 + buf[Left++] - '0';
 42     return x;
 43 }
 44  
 45 int len = 0, pr[15];
 46 inline void print(int x) {
 47     while (x)
 48         pr[++len] = x % 10, x /= 10;
 49     if (!len) putchar('0');
 50     while (len)
 51         putchar(pr[len--] + '0');
 52 }
 53  
 54 inline void update(int x, int del, int T) {
 55     while (x <= n)
 56         BIT[T][x] += del, x += lowbit(x);
 57 }
 58  
 59 inline int query(int x, int T) {
 60     int res = 0;
 61     while (x)
 62         res += BIT[T][x], x -= lowbit(x);
 63     return res;
 64 }
 65  
 66 inline void update(int x, int del) {
 67     if (!cnt[x])
 68         update(x, 1, 1);
 69     cnt[x] += del;
 70     if (!cnt[x])
 71         update(x, -1, 1);
 72     update(x, del, 0);
 73 }
 74  
 75 int main() {
 76     int i, l, r;
 77     Len = fread(buf, 1, Maxlen, stdin);
 78     buf[Len] = ' ';
 79     n = read(), Q = read();
 80     size = (int) sqrt(n);
 81     for (i = 1; i <= n; ++i)
 82         a[i] = read(), pos[i] = i / size;
 83     for (i = 1; i <= Q; ++i) {
 84         q[i].l = read(), q[i].r = read();
 85         q[i].a = read(), q[i].b = read();
 86         q[i].w = i;
 87     }
 88      
 89     sort(q + 1, q + Q + 1);
 90     for (i = l = 1, r = 0; i <= Q; ++i) {
 91         for (; r < q[i].r; ) update(a[++r], 1);
 92         for (; r > q[i].r; ) update(a[r--], -1);
 93         for (; l < q[i].l; ) update(a[l++], -1);
 94         for (; l > q[i].l; ) update(a[--l], 1);
 95         ans1[q[i].w] = query(q[i].b, 0) - query(q[i].a - 1, 0);
 96         ans2[q[i].w] = query(q[i].b, 1) - query(q[i].a - 1, 1);
 97     }
 98     for (i = 1; i <= Q; ++i) {
 99         print(ans1[i]), putchar(' ');
100         print(ans2[i]), putchar('\r'), putchar('\n');
101     }
102     return 0;
103 }
View Code

(p.s. 這道題Rank 1的5 sec是怎么做到的= =,蒟蒻可是用了80 sec啊!!!)

轉載于:https://www.cnblogs.com/rausen/p/4108541.html

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

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

相關文章

mysql ddl dml 導出_MySQL:DDL和DML語句,弄明白了嗎?

語句分類DDL&#xff08;Data Definition Languages&#xff09;語句&#xff1a;即數據庫定義語句&#xff0c;用來創建數據庫中的表、索引、視圖、存儲過程、觸發器等&#xff0c;常用的語句關鍵字有&#xff1a;CREATE,ALTER,DROP,TRUNCATE,COMMENT,RENAME。增刪改表的結構D…

敏捷水手——單體法到微服務之旅

\本文要點\\探究持續四年多的漸進式改革是什么樣子&#xff1b;\\t探索為什么在變革軟件和組織設計時要遵循康威定律&#xff1b;\\t看看如何將領導力應用到不同的團隊、領域和層級&#xff1b;\\t舉例說明變革管理如何依賴于理念和一貫的長遠目標&#xff1b;\\t了解從職能型團…

SQLCMD的介紹

SQLCMD的介紹 原文:SQLCMD的介紹文章轉載自&#xff1a;http://blog.sina.com.cn/s/blog_3eec0ced0100mhm2.html最近經常用到超過80M *.sql文件的導入問題。上網找了一下&#xff0c;發現超過80M的文件是不能在查詢分析器中執行的。找了些解決方案&#xff0c;個人感覺最簡單的…

Windows下用命令行導出導入MySQL數據庫

方法1&#xff1a;添加“系統環境變量”。我的電腦&#xff1e;屬性&#xff1e;高級&#xff1e;環境變量&#xff0c;在“系統變量”欄目下找到 path 雙擊編輯。先添加&#xff1b;&#xff08;分號&#xff09;&#xff0c;再添加MySQL安裝目錄下bin文件夾&#xff08;包含m…

python模擬鼠標拖動滑塊_如何通過拖動滑塊來控制Kivy滾動視圖?

是的&#xff0c;你可以這樣做&#xff1a;在ScrollView中有一個scroll_類型屬性&#xff0c;因此通過設置它&#xff0c;您可以實現您想要的功能。在如果設置scroll_type[bars]&#xff0c;則可能需要更改bar_width屬性&#xff0c;因為它的默認值為2&#xff0c;而且它太小&a…

怎樣下載C/C++的免費、開源且跨平臺IDE——Code::Blocks

進入Code::Blocks的官網&#xff0c;官網地址為&#xff1a;http://www.codeblocks.org/home。進入后如下圖所示&#xff1a; 點擊“Home”菜單&#xff0c;跳轉到IDE的下載界面&#xff1a; 有幾種模式可供選擇&#xff0c;我選擇的第一種&#xff0c;Download the binary rel…

網站吞吐量

http://www.blogjava.net/neverend/archive/2011/01/25/343514.html轉載于:https://www.cnblogs.com/sevensole7/archive/2013/06/05/3118966.html

外鏈引入css有哪些方式_HTML+CSS基礎(三) CSS的引入方式和CSS選擇器

一、CSS概念&#xff1a;什么是CSS,CSS說白了就是給頁面添加樣式,讓整個頁面變的好看起來的一種東西,用來定義網頁外觀&#xff0c;如字體、背景、顏色等二、在頁面中使用css的3種常用方式1.行內樣式就是在一個標簽內使用 style 屬性,僅為某一個標簽添加樣式例如文字2.內嵌式就…

混合部署

http://horse87.blog.51cto.com/2633686/1628179轉載于:https://blog.51cto.com/12341672/1893792

Logistic回歸 python實現

Logistic回歸 算法優缺點&#xff1a; 1.計算代價不高&#xff0c;易于理解和實現2.容易欠擬合&#xff0c;分類精度可能不高3.適用數據類型&#xff1a;數值型和標稱型 算法思想&#xff1a; 其實就我的理解來說&#xff0c;logistic回歸實際上就是加了個sigmoid函數的線性回歸…

dataset轉換json格式

轉換json方法 public static string DataToJson(DataSet dt){StringBuilder jsonBuilder new StringBuilder();jsonBuilder.Append("{\"");jsonBuilder.Append("points");jsonBuilder.Append("\":[");for (int i 0; i < dt.Table…

《自控力》總結_完結

《自控力》總結_完結 《自控力》總結_完結 Saturday, December 15, 2012 9:35 PM 《自控力》總結 第一章 1 前額皮質的3個功能區域&#xff1a;“我要”“我不要”“我想要” 2 人的兩個自我&#xff1a;沖動的自己&#xff0c;控制自己。給兩個自己分別起名字&#xff0c;當某…

python 定時自動爬取_python實現scrapy爬蟲每天定時抓取數據的示例代碼

1. 前言。1.1. 需求背景。每天抓取的是同一份商品的數據&#xff0c;用來做趨勢分析。要求每天都需要抓一份&#xff0c;也僅限抓取一份數據。但是整個爬取數據的過程在時間上并不確定&#xff0c;受本地網絡&#xff0c;代理速度&#xff0c;抓取數據量有關&#xff0c;一般情…

博客園win8客戶端開發記錄5-app設置 登錄 回復評論

這段時間完成了博客園cnblogs登錄&#xff0c;注銷和設置的相關功能 &#xff0c;進入軟件&#xff0c; 打開win8的charm setting 選擇設置就是當前軟件的設置選項了&#xff0c; 感覺這有點山寨mac os x系統&#xff08;所有軟件包括當前系統使用統一的設置&#xff09;。 扯遠…

Oracle?修改SYS、system用戶密碼

Oracle 修改SYS、system用戶密碼 by:授客 QQ&#xff1a;1033553122 概念 SYS用戶是Oracle中權限最高的用戶&#xff0c;而SYSTEM是一個用于數據庫管理的用戶。在數據庫安裝完之后&#xff0c;應立即修改SYS,SYSTEM這兩個用戶的密碼&#xff0c;以保證數據庫的安全。 安裝完之…

春節小作業總結1

1、x Double.parseDouble(X);字符串轉Double類型&#xff1b; 2、使用正則表達式判斷輸入的是字母還是數字 要import java.util.regex.Pattern 和 java.util.regex.Matcher public boolean isNumeric(String str){ Pattern pattern Pattern.compile("[0-9]*&q…

簡單工廠模式,工廠方法模式,抽象工廠模式,spring的狂想

菜鳥D在項目中遇見一個比較糾結的高耦合&#xff0c;所以就想辦法來解耦。情況是這樣的&#xff1a;系統通過用戶選擇treeview控件的節點判斷調用不同的處理&#xff0c;這些處理中某些東西又是類似的。同事的建議是采用簡單工廠&#xff0c;耦合就耦合吧&#xff0c;反正treev…

堆、棧及靜態數據區詳解 轉

內存分為代碼區、全局數據區、堆區和棧區。堆一般存放動態數據&#xff0c;棧里一般存放局部成員。 關于堆棧和堆的概念[問題] C中創建本地&#xff08;或者說局域&#xff09;變量是在堆棧&#xff08;stack&#xff09;中分配內存地址&#xff0c;而創建全局變量則是在堆&…

如何使用CSS實現居中

前言&#xff1a; 這一篇主要是翻譯 《how-to-center-anything-with-css》這一篇文章的主要內容&#xff0c;再加上自己的一些概括理解&#xff1b;主要問題是解決垂直居中的問題。我們知道實現水平居中的方式很多種&#xff0c;比如&#xff1a; text-align:center; margin:0 …

java布局_運用 BoxLayout 進行 Swing 控件布局

引言在用戶使用 Java Swing 進行用戶界面開發過程中&#xff0c;會碰到如何對 Java Swing 的控件進行布局的問題。Swing 的控件放置在容器 (Container) 中&#xff0c;容器就是能夠容納控件或者其它容器的類&#xff0c;容器的具體例子有 Frame、Panel 等等。容器需要定義一個布…