HDU 4267 A Simple Problem with Integers 樹狀數組

來源:http://acm.hdu.edu.cn/showproblem.php?pid=4267題意:給一些數,有兩種操作,一種是在[a,b] 區間內,對(i - a)% k == 0 的加value,另一種操作是詢問某個位置的值。思路:很容易想到這是一個插線問點的問題,但是在更新值 的時候和平常的更新不同,這道題又增加了一個限制條件。因為k比較小(<=10),餘數的情況也很少,因此我們可以開55棵樹狀數組,用cnt[x][k][mod] 表示x 對k

HDU 4417 Super Mario 樹狀數組

來源:http://acm.hdu.edu.cn/showproblem.php?pid=4417題意:給一些數,數中有重複的。還有一些詢問,問的是[L,R] 區間內有多少個數小於h,有多次詢問。思路:普通方法的話肯定會逾時,題目問[L,R]區間內小於h的數有多少個,則可以算出cal(R) 和 cal(L - 1),

POJ 1177 Picture 線段樹 + 掃描線 求矩形周長

來源:http://poj.org/problem?id=1177題意:給出一些矩形,求出這些矩形所圍城的周長。思路:明顯是線段樹的題目啊,但是線段樹爛的一扯。。。具體來說,就是一條線段一條線段的來處理。先處理豎著的線段,再處理橫著的線段。處理線段長度的時候和掃描線求面積是一樣的。代碼:#include <iostream>#include <cstdio>#include <algorithm>#include <string.h>using

POJ 2823 Sliding Window 線段樹水題

來源:http://poj.org/problem?id=2823題意:給一些數,每次可以看k個數。從左向右順序每次k個數,問每次的最大值 和最小值 是多少。思路:RMQ的問題,用線段樹鬆鬆水過。代碼:#include <iostream>#include <cstdio>#include <string.h>using namespace std;const int N = 1000010;struct tree{int

HDU 2227 Find the nondecreasing subsequences 樹狀數組

來源:http://acm.hdu.edu.cn/showproblem.php?pid=2227題意:給一個集合,問能求出多少個非降序的集合。思路:如果資料範圍小的話,可以用(n*n)的方法,即兩重迴圈的方法。因為n最大為100000,所以不行。用sum(i)表示到第i個數時有多少個非降集合,則sum(i) =sum( sum(j)),(num[j] < num[i]),觀察

POJ 3277 City Horizon 線段樹

來源:http://poj.org/problem?id=3277題意:給一些矩形,給出長和高,其中長是用區間的形式給出的,有些區間有重疊,最後求所有矩形的面積。思路:因為矩形的區間範圍太大,因此可以離散化,離散化後就是一個線段樹的問題了。結點資訊包括左端點,右端點,和高度。一般來說,線段樹建樹有兩種方法,一種是區間離散,一種是點離散,以前唯寫過點離散的,而這道題明顯 是區間離散更簡單。又學了一點新知識。代碼:#include <iostream>#include

HDU 3887 Counting Offspring 樹狀數組 + 棧類比dfs

來源:http://acm.hdu.edu.cn/showproblem.php?pid=3887題意:給一棵樹,樹的根結點給出,邊也給出,現在問每個結點下面有多少個結點的編號比該結點的編號小。思路:這道題就是POJ 3321 和 HDU 4417的結合。首先用dfs遍曆樹,對每個結點對應一個區間,然後就是求一個區間內比一個數小的數有多少個,和HDU  4417 一樣。不同的是這道題目dfs會爆棧,因此需要和棧類比dfs,或者調棧的大小。棧類比dfs代碼:#include

POJ 1251 Jungle Roads 最小產生樹

來源:http://poj.org/problem?id=1251題意:就是給出你圖,然後求最小產生樹的值即可。注意輸入。思路:完全裸的最小產生樹,kruskal水之。好久不寫最小產生樹,仔細想了想,還是寫了出來。代碼:#include <iostream>#include <cstdio>#include <algorithm>#include <string.h>#include <vector>using namespace

POJ 1151 Atlantis 離散化 + 掃描線 + 線段樹

來源:http://poj.org/problem?id=1151題意:給一些矩形,求這些矩形的面積。思路:線段樹 + 掃描線的題目,因為資料 是double,所以要離散化。代碼:#include <iostream>#include <cstdio>#include <string.h>#include <algorithm>using namespace std;const int N = 110;struct line{double

HDU 3450 && HDU 2836 樹狀數組

來源:http://acm.hdu.edu.cn/showproblem.php?pid=3450題意:給一些數,問有多少集合,滿足相鄰的數之間的差的絕對值小於d。思路:樹狀數組,找出上界和下界後,和HDU 2227 一樣。找上界和下界的方法為二分。代碼:#include <iostream>#include <cstdio>#include <string.h>#include <algorithm>using namespace

POJ 1389 Area of Simple Polygons 線段樹求矩形面積

來源:http://poj.org/problem?id=1389題意:給一些矩形,讓求這些矩形的面積。矩形是給出的左下角和右下角的座標,都是正整數。思路:簡單的線段樹題目,就是求矩形面積。因為都是整數,而且資料範圍不大,因此不需要離散化。代碼:#include <iostream>#include <cstdio>#include <algorithm>#include <string.h>using namespace std;const

HDU 3547 DIY Cube Ploya定理

來源:http://acm.hdu.edu.cn/showproblem.php?pid=3547題意:用n中顏色塗一個正方體的八個頂點,求有多少種方法。如果得到的結果大於等於10^15,則輸出後15位即可。思路:Ploya定理啊,是組合數學課本上的原題。對應於四種不同類型的旋轉,1:不動,即恒等旋轉有1個;2:繞三對對立面的中心旋轉,有旋轉90度,旋轉180度,旋轉270度,分別有3個;3:繞對邊終點連線旋轉,有6個;4:繞對角點旋轉,有旋轉120度和旋轉240度,分別有4個。因此共有24個對

POJ  1823 Hotel 線段樹 + lazy標籤

來源:http://poj.org/problem?id=1823題意:有一些房間,對這些房間有三種操作,一是一段連續的房間住人,二是一段連續的房間變空,三是詢問這些房間中最長的一段連續的房間是多長。思路:明顯是線段樹的題目,中間用到了lazy思想,好題中的好題啊。挺難的一道題目,需要好好思考。這道題的關鍵之處在於,用lazy向下更新完之後,父結點的資訊還需要根據子結點的資訊來改變。也就是說,同時需要從下向上更新。代碼:#include <iostream>#include <

POJ 2142 The Balance 擴充歐幾裡得

題意:有兩種類型的砝碼,每種的砝碼品質a和b給你,現在要求稱出品質為d的物品,要求a的數量x和b的數量y最小,以及x+y的值最小。思路:是擴充歐幾裡得的應用。設ax + by = 1,求出x和y的值,因為我們要求ax + by = n的解,所以需要將x y的值乘以n。因為題目中要求x和y的值都要為正,然而,易知,ax + by = 1在a和b都為正數的情況下,x 和 y必有一個數是負的。因此我們需要把x 和 y的值轉化為合法的正值。我們先把x轉化為正值,易知,把x轉化為正值的方式是 x =

POJ 3737 UmBasketella 三分

來源:http://poj.org/problem?id=3737題意:給你一個圓錐,圓錐面積給出,問你圓錐的最大體積是多少。思路:枚舉底面圓半徑,算圓錐的體積。可以列出運算式,滿足三分,因此可以三分枚舉底面圓半徑。代碼:#include <iostream>#include <cmath>#include <string.h>#include <cstdio>using namespace std;const double pi = acos(-

POJ 3278 Catch That Cow bfs

來源:http://poj.org/problem?id=3278題意:給一個開始點和一個結束點,求從開始點到結束點需要多少步。可以左走一步,右走一步,或者座標乘2.思路:裸的bfs啊,水題一枚。代碼:#include <iostream>#include <cstdio>#include <queue>#include <string.h>using namespace std;#define CLR(arr,val)

POJ 2560 Freckles 最小產生樹

       好久沒有寫過最小產生樹的題了,碰到一道最小產生樹的題,沒想到竟然1A了,,,happy。用的是kruskal演算法,比較簡單的。題目:FrecklesTime Limit: 1000MS Memory Limit: 65536KTotal Submissions: 5046 Accepted: 2630DescriptionIn an episode of the Dick Van Dyke show, little Richie connects the freckles on

浙江省省賽J題

     一道數論題,也是道簡單題,就是個擴充歐幾裡得,一直沒寫過擴充歐幾裡得的代碼,這次還是在朱神的協助下才寫出來的,不過高興的是1A了,,題目:Modular InverseTime Limit: 2 Seconds      Memory Limit: 65536 KBThe modular modular multiplicative inverse of an integer a modulo m is an integer x such that a-1≡x (mod m).

POJ 2828 Buy Tickets 線段樹

來源:http://poj.org/problem?id=2828題意:有一些人在排隊買票,但是有些人會插隊。現在給出這些插隊的資訊,問最後人的順序。思路:一道線段樹的好題。我們從前向後考慮的話,當第i個人插隊的時候,他插隊到第posi個人的後面,也就是說,此時,他前面已經有了posi個人。因此,我們可以從後向前考慮,這樣,第i個人插隊到第posi個人的後面,說明了他的前方還有posi個空位置。因此,就可以用線段樹了,線段樹的結點儲存的是該區間有多少個空位置。ac代碼:#include <

POJ 3370 Halloween treats 鴿巢原理

來源:http://poj.org/problem?id=3370題意:n個小孩給m個鄰居要糖,要求是糖的總數是n的倍數,問應該向哪些鄰居要。思路:鴿巢原理的題,組合數學課本上的題目,上午剛寫了道基本上一模一樣的。。代碼:#include <iostream>#include <cstdio>#include <string.h>#define CLR(arr,val) memset(arr,val,sizeof(arr))typedef long long

總頁數: 61357 1 .... 21010 21011 21012 21013 21014 .... 61357 Go to: 前往

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.