UESTC 1546 Bracket Sequence 線段樹成段更新

題意:給定一個括弧序列,可以對它進行set,對把一定範圍內的括弧變成某一種括弧,reverse把左右括弧互換,query一定範圍內的括弧序列是否合法。做法:一開始的想法,節點記錄未匹配的左右括弧數,然後進行操作,因為小看了reverse操作(本來以為簡單的把左右括弧的值改一下就好了,可是...),WA。然後百度大神,重要發現了一個好演算法。造成一我錯

哎,心碎博弈論,做了幾道十分簡單的。 ACM b博弈

hdu 2147  kiki's game根據最初的理論畫個圖,就可以把勝負的規律找出來了#include <iostream>#include <cstdio>using namespace std;int main(){ int n,m; while(~scanf("%d%d",&n,&m)&&(m||n)) { if(n%2&&m%2) printf("What a

ZOJ 3606 Lazy Salesgirl 線段樹

題意:有一個賣麵包的姑娘,如果過了w分鐘仍舊沒有客人來的話,他就會睡著,如果客人在他睡著的時候來的話,客人會把她叫醒,然後離開。每個客人會以不同的價格買麵包,姑娘會買給第i個客人(i-1)%3+1塊麵包,求在收到的錢做多的情況下的最小的w.做法:唉,沒想到....只能看大神的。10W個人用線段樹是沒錯的。要求最小的w,可是為了可以讓客人買到麵包,這裡的w的值是離散的,即相鄰兩個客人之間的間隔。一開始還腦殘的以為可以2分答案...先對每個客人根據到來的時間進行排序,然後算出每個客人的w,然後再根據

codeforcres 5C Longest Regular Bracket Sequence 隊列最佳化 棧

做法:用個棧就過了,然後數組l[i]記錄,以這個點為終點的最長括弧序列。明白什麼是字串啊....#include <iostream>#include <utility>#include <stack>#include <cstdio>#define LMT 1000003using namespace std;int len,ans;char bra[LMT];int l[LMT];//沒有考慮到連續 ()()()()int main(){

C2. Party

題意:額,只要注意each的意思做法:基本的並查集技術,只要理解了each的意思...#include<cstdio>#define LMT 2002using namespace std;int get[LMT],fs,father[LMT];int work(int u){ int x=u; while(x!=father[x]) x=father[x]; father[u]=x; return x;}int main(void){

acdream 1015Double Kings 樹形結構 貪心

題意:一個樹狀圖一般的國家,有兩個王子要設立自己的首都,首都周圍的城市選擇裡他們近的那個首都效忠(即那個王子得到了那些城市,當距離一樣使,選大王子效忠),大王子先選擇首都。問在兩者的最優策略下,大王子最多能夠得到幾個城市。做法:枚舉大王子會選擇的城市。這種情況下,樹被分成了很多子樹,小王子必須離大王子足夠近才可獲得最多的城市。以後這種二元的貪心,就枚舉第一個,然後再貪心第二個。。  記得記得#include

ZOJ3602 Count the Trees STL 樹的同構

題意:求兩棵二叉樹中同構的子樹對。做法:首先透徹什麼叫二叉樹的子樹!!然後,不要貿然就用hash,二叉的獨特性質使這道題可以很好的用map解決,記得記得!!最後,最重要的是ZOJ中可能只能識別%lld#include<utility>#include<cstdio>#include<map>#define LMT 100005#define LL long long//二叉樹同構要分左右的//雜湊還是少用比較好啊//map庫的作用using

codeforces 74B Train 貪心 簡單類比

題意:列車員要抓逃票的人。列車員在火車中來回巡邏,起點為cp,每分鐘移動一個車廂。逃票的人可以進入任一相鄰車廂,或者不動。火車停了的時候,逃票者下車,新的逃票者選擇一個車廂進入,問是否可以抓到這個人,何時抓到。做法:貪心。如果列車員面對逃票者,逃票者和售票員往相同的方向跑,否則,就原地不動。放置時一般可以放在列車員背後,可是有特殊情況(程式中有)。列車員會轉身,是方向改變(以開始寫成像迴圈鏈表一樣的東西了...)。類比一下就好了.這種小規模題,直接類比#include <iostream&

codeforces 145C – Lucky Subsequence mark

145C - Lucky Subsequence題意:在一串數中任取K個數,問有幾種情況是不含有兩個相同的luky number組合數計算模版,這個是超大型的組合數啊#include<cstdio>#include<iostream>#include<map>#define X 100010#define mod 1000000007using namespace std;typedef long long LL;map<int,int>

codeforces 242C King’s Path STL庫

題意:在一個幾乎無限大的棋盤上,有一個起點和終點。有一些格子是不可走的,一個問一個王從起點走向終點所需要的最小步數。王可以向八個周圍的格子走。做法:最多才100W個點,BFS暴力。#include<iostream>#include<map>#include<deque>#include<cstdio>#define LMT 1000005using namespace std;//bfs,最短路也可用BFS暴力的//只有一百萬個點,而且行動單一,

codeforces 67A Partial Teacher 貪心

題意:j老師分糖,給成績好的人糖多。輸入學生隊伍,LR=,來確定成績的增長方式,L代表左邊的人比自己高,R表示右邊的高,=表示左右相等。在保證分糖最少的情況下,輸出每個學生所分得的糖。做法:先假設每個同學都分了一顆糖,然後看左右學生的成績,LL,表示只考慮左邊同學成績的情況,RR表示只考慮右邊同學的情況,這樣,往左邊往右邊遍曆,看見比他低的就加一,去LL,RR中的最大值#include<cstdio>char s[1001];//只要兩邊可以對接int main(void){int

hdu Ping pong Ping pong 線段樹

做法:其實只要過了13 5 4 2 這組資料基本沒什麼問題了。。。哎,早知道用樹狀數組了...題目中的裁判是要位置在兩個運動員之間,而且能力也在他們之間的,好在每個人的rank都不一樣。可以先記錄每個人的rank還有位置,然後按照rank進行排序。建立三棵線段樹,一棵的節點記錄每個人,還有兩棵是分別記錄某個人左邊比他rank低的人的數量,某個人右邊rank低的人的數量。然後就按照排序過後的順序進行插入、尋找#include<cstdio>#include<cstring>

hdu 1255 覆蓋的面積 掃描線

做法:注意更新,其實重疊就是有一個地區下方有2條以上沒有被消除的線段。#include<cstdio>#include<algorithm>#include<cstring>#define eps 1e8#define left l,m,x<<1#define right m+1,r,x<<1|1const int LMT=4002;using namespace std;struct line{ double x1,x2,y;

fzu 2112 Tickets 圖論

做法:歐拉路中要麼每個點的度數都是偶數,要麼,只有兩個度數為奇數的點。#include <iostream>#include <cstring>#include <cstdio>const int LMT=100003;using namespace std;int du[LMT];int main(){ int T,n,m; scanf("%d",&T); while(T--) {

Codeforces Beta Round #77 (Div. 1 Only), problem: (B) Lucky Numbers 數位DP+剪枝DFS+貪心

95B - Lucky Numbers做法:要找出最小的數,可以貪心的先看這一位可否變成4,如果不可再換7,然後用DFS看每一種狀態是否可以存在。這種無法機械遞推,而且可以有明顯剪枝地方的題,要記得用DFS#include<cstdio>#include<cstring>/*******抽時間要細想想DFS啊*****/const int LMT=100005;int len;char num[LMT],ans[LMT];bool dfs(int pos,int

hdu 3911 Black And White 區間合并 線段樹

題意:重要的是求某個區間最長的1區間。#include<cstdio>#include<cstring>#define left l,m,x<<1#define right m+1,r,x<<1|1const int LMT=100004;int ox[LMT<<2],lsum[2][LMT<<2],msum[2][LMT<<2],rsum[2][LMT<<2];void init(void){

hdu 3997 Sequence operation 線段樹 3997

這幾題基本一樣啊hdu 3911hdu 3997POJ 2892#include<cstdio>#include<cstring>#define left l,m,x<<1#define right m+1,r,x<<1|1const int LMT=100005;int

Codeforces Round #160 (Div. 1), problem: (B) Maxim and Restaurant DP+組合數學

題意:隨意設計n個顧客的排列順序,求其中餐廳內客人數量的期望。做法:求出i個客人在房內消耗t的情況數量。然後統計一下,這裡一定會注意其中的重複情況,其實一個重複x次的情況,正式因為這個情況中還有x個人。要仔細判斷重複的產生情況。#include <iostream>#include <cstdio>#define LMT 55//先把總的情況的個數算出來,然後再除以總情況using namespace std;double dp[LMT][LMT];int

codefrces 235B Let’s Play Osu!

題目意思:在一個序列只有O,X,分數為每個O 連塊長度的平方的和,輸入每個位置出現O 的機率,求分數期望.做法 參考: http://codeforces.com/blog/WJMZBMR#include<stdio.h>/*轉化題目,變為找出i,j對數,其中i<j,並且i,j之間沒有X,並計算出O的總數,最後的分數為O的總數+pair(i,j)的數量*///機率題盡量把機率值和權值分離int main(){double tem,pre=0.0,ans=0.0;int

codeforces 232A Cycles 圖論 貪心 思維

題意:在一個無相圖中有N個長度為3 的迴路,輸出合格圖。注意此圖的節點數不得超過100做法:貪心手法。點最多一百個,那麼,要讓每個點的作用都發揮出來。所有,可以類比每次加入點所帶來的影響,來確定,兩個點是否要串連。#include <iostream>#include<cstdio>using namespace std;int c[103],have[103],ans,k,ss;bool gra[103][103];int main(){ int n,i,j,k;

總頁數: 61357 1 .... 18222 18223 18224 18225 18226 .... 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.