原创 POJ 3321 Apple tree

一看數據範圍便能猜到要麼是O(n),要麼是n*log(n)的算法,並且這個查詢和更改操作使人很自然地想起了樹狀數組,但是樹狀數組只能對區間進行操作,而題目的數據給出的是樹的形式,需要將根節點和它的子樹這個範圍變成[ , ]區間的形

原创 2017日照夏令營 day5 t1 backpack

題目描述 Blice和阿強巴是好朋友 但萌萌噠Blice不擅長數學,所以阿強巴給了她一些奶牛做練習 阿強巴有 頭奶牛,每頭奶牛每天可以產一定量的奶,同時也需要一定量的草作爲飼料 對於第 頭奶牛來說,它每天可以產 升的奶,同

原创 洛谷P1119 災後重建

出處 http://blog.csdn.net/harlow_cheng/article/details/52262956 通過這道題加深了對floyd的理解,通過中間點k去更新與之相連的點。原理講的很清晰,必須點贊:) 代

原创 洛谷P2814 家譜

查詢祖先的題目,自然是要用到並查集了,不過在輸入,數據的處理上要注意細節,名字的前面’# + ?’等字符顯然是分類的,可以先輸入一個字符,然後判斷後分別處理。還有map關聯兩個字符串就可以了,不用再進行編號-字符的轉換,並查集時一

原创 2017日照夏令營 day6 t1 fac

題目大意: 有一個與階乘有關的遊戲,給出兩個整數n ,m ,令t=n!,每輪遊戲的流程如下 1.如果 m不能整除t ,即 t mod m !=0 ,跳到第三步;如果能整除,跳到第二步 2.令t=t/m,xyx的得分+1並返

原创 洛谷P2969 音符

首先先預處理出第i個音階的終點(i∈[1,n]),我們對於每個時間詢問屬於哪一段區間,用二分查找。 #include<iostream> #include<cstdio> using namespace std; int n,q,

原创 朱迪過河

朱迪過河 (river.pas/c/cpp) 【問題描述】 兔警官朱迪歷經千辛萬苦,終於找到了被獅市長關押的夥伴們,打算馬上把她們帶回去與家人團聚。 兔警官朱迪帶着被她解救出來的 N 個小夥伴打算過一條河,但她們僅

原创 TYVJ P4366 整數拆分

一道非常好的搜索題目。 要將任意一個數拆分成斐波那契數的和,想到用搜索從前往後依次拆分驗證,因爲輸出要求,我們可以巧妙地用字符串的形式儲存結果。 考慮到dfs的可行性和最優性剪枝,我們可以增加一個變量t儲存當前已經拆

原创 洛谷P2296 尋找道路

要滿足條件1可以從終點開始走,反向建邊,將圖遍歷一遍,用v[]記錄終點能到達的點,不能到達的刪去 刪邊時用used[]記錄能用的邊,然後求最短路徑自然是用SPFA求符合條件的邊的最小值。注意此時應該再正向建立鏈表,如果用一個數組

原创 codevs 2546奇偶遊戲

奇偶 【題目描述】 給定一個M格排成一行的儲藏櫃,每個格子能放一個物品;再給出N個條件,每個條件形同如下:A B odd/even,表示第A個格子到第B個格子之間(包括兩端)放了奇數(odd)個物品或者偶數(even)個物品。

原创 洛谷P1078 文化之旅

要求最多能賺多少錢,我們自然是希望以最低價格購買,以最高價格賣出。 所以可以從起點出發,用SPFA求出能夠到當前點的所有點最小值,因爲要到達終點,所以從終點開始倒着走一遍SPFA,找到從當前點到終點中所有點的最大值(先買再賣)

原创 洛谷P1582 倒水 二進制運算

題目連接 https://www.luogu.org/problem/show?pid=1582 因爲無論怎麼倒水瓶中水只會是1,2,4,8,16…的狀態,想到用二進制表示狀態。 1表示瓶中有水,0表示沒有,只要讓N中的1變

原创 洛谷P1525 關押罪犯

先按照怨氣值從大到小排序,最大的當然不能讓他們在一起了,將他們分到兩個監獄,而與當前的合併的是他的敵人的敵人,合併過程中發現竟然到了一個集合裏,說明此時的狀態不能再分了,輸出怨氣值即可 #include<iostream> #in

原创 洛谷P1266 速度限制

題目鏈接:https://www.luogu.org/problem/show?pid=1266 解題思路: 1.求最快路線類似於求最短路,想到用spfa解決。 2.和一般的spfa不同,本題的路徑中是以距離/速度來更新答案的,並且速

原创 洛谷P2707 Facer幫父親

鏈接:https://www.luogu.org/problem/show?pid=2707#sub 解題思路: 一道非常有趣的數學題。 首先可以得出門票的收益=x*(ai-bi*x,0); 如果枚舉每個可能的x的話肯定會超