Time of Update: 2018-12-04
**學習資源: UnGeek kuangbin總結 國外好玩的splay demo(什麼策略能把一棵splay樹拉成一條鏈呢) 兩篇論文: 楊思雨《伸展樹的基本操作與應用》 Crash《運用伸展樹解決數列維護問題》 ** 把kuangbin的數組形式改成結構題形式怎麼比原來快了1s ?!neko說結構體的緩衝利用率較高=_=
Time of Update: 2018-12-04
http://acm.hdu.edu.cn/showproblem.php?pid=4282今年網路賽。。天津賽區。。有道題。。是這樣的。。。X^Z + Y^Z + XYZ = K 給出K ,求XYZ,我思路很明確。。。枚舉其二,然後二分其一,但是始終TLE。。。。晚上回去之後,看了人家報告,。。。才發現。。。原來是微軟的函數pow惹的禍。。。我本來以為微軟的函數寫的都很好。。效率很高。。但是我忘了一件事。。就是 pow(int a, int b) 這個函數可以理解為 pow(double
Time of Update: 2018-12-04
轉載:http://forum.byr.edu.cn/article/ACM_ICPC/51264大家懂的,鑒於HDU用的是windows伺服器,所以stack大小及其坑爹,稍微深一點的遞迴棧就會stack
Time of Update: 2018-12-04
幫別人寫的。。先是在網上找了一個。。但是發現錯誤百出。。然後又找不到更好的。。於是就改了下。。。將就著看。。。完全c語言,。。。木有任何c++~~~~不過倒是很彆扭。。。學了java之後。。。感覺自己被面向過程殘害匪淺。。。。物件導向和多線程的思路完全屢不清頭緒。。。。哎。。。ACM害我一生麼難道?主要實現了以下功能 1.多項式建立 2.多項式相加 3.多項式相減 4.多項式相乘
Time of Update: 2018-12-04
題目連結:here題意:5種硬幣,輸出組合數代碼:#include <iostream>#include <cstdio>#include <cstring>using namespace std;const int maxn = 7500;int coin[5] = {1,5,10,25,50};int dp[maxn];int m;int main(){int i, j;memset(dp, 0, sizeof(dp));dp[0] = 1;for (i=
Time of Update: 2018-12-04
題目連結:here題意:和uva674差不多。。11種金幣,輸出能組成給定數額的方法個數代碼:#include <iostream>#include <cstdio>#include <cstring>using namespace std;const int maxn = 30010/5;int coin[11] = {1,2,4,10,20,40,100,200,400,1000,2000};long long dp[maxn];int
Time of Update: 2018-12-04
題目連結:http://acm.hdu.edu.cn/showproblem.php?pid=1226思路:因為n <= 5000 ,所以方案個數也只有5000個,可以用bfs來做。。一開始挺糾結怎麼做,但是上網一看別的大牛的代碼,一下子就恍然大悟豁然開朗,如同撥開雲霧見青天~~~^o^~~~~代碼:#include <iostream>#include <cstdio>#include <string>#include
Time of Update: 2018-12-04
題目連結:here分析:很簡單一個搜尋。。。直接暴搜即可。。不知道為啥夏天的風把他分類到level1.。。。代碼:#include <iostream>#include <cstdio>using namespace std;int ansnum;int neigh[22][3];bool vis[22];int state[22];int m;void dfs(int x, int num){int i, j;if (num == 20){bool flag =
Time of Update: 2018-12-04
題意就是有N頭牛,每頭牛都有一個座標和聲調值(x, v),兩頭牛之間通訊要花費的能量是他們的距離乘以最大的一個音調值,現在要任意兩頭牛之間都相互連訊一次,求總共需要花費多少能量?
Time of Update: 2018-12-04
/* 雙連通 點雙連通 邊雙連通 奇圈 經典題 好題 TLE + WA 了 N次,終於AC了... 題意: 亞瑟王要在圓桌上召開騎士會議,為了不引發騎士之間的衝突,並且能夠讓會議的議題有令人滿意的結果,每次開會前都必須對出席會議的騎士有如下要求: 1、 相互憎恨的兩個騎士不能坐在直接相鄰的2個位置; 2、 出席會議的騎士數必須是奇數,這是為了讓投票表決議題時都能有結果。
Time of Update: 2018-12-04
題目連結:here分析:遇到上下兩層都是# 的,就把上下兩層的這個位置都弄成 牆就行。。還有遇到 一層是#一層是牆的。。也直接把倆都弄城牆就行。。。省的要判斷他撞死。。哈哈、、我遇到了點小問題。。。就是遇到#的時候,我忘了加步數。。。所以一直wa。。最後才檢查出來。。。囧。。。。。低級失誤。。。雖然上下樓不用時間。。但是你走到#需要一步的時間。。。代碼:#include <iostream>#include <cstdio>#include <cstring>
Time of Update: 2018-12-04
/* 雙連通 縮點 橋 LCA 題意:給一個無向連通圖,問每次新加進一條邊後,圖中橋的數目。 重邊算一條。 思路:求雙連通分量,利用並查集縮點,形成一棵樹,樹邊肯定都是橋,然後每對點x,y,找原圖中x,y點對應的新圖中的點,如果不是一個點,則向上>找它們的LCA,因為它們之間連了一條邊,所以這些點到它們的LCA之間的邊都不是割邊了,找LCA時,先將兩點上升到同一層次,然後一起再向上找父親節點,其間遇到橋就把橋的標記刪除,並且答案減1
Time of Update: 2018-12-04
樹,一種十分優美的資料結構,因為它本身就具有的遞迴性,所以它和子樹見能相互傳遞很多資訊,還因為它作為被限制的圖在上面可進行的操作更多,所以各種用於不同地方的樹都出現了,二叉樹、三叉樹、靜態搜尋樹、AVL樹,線段樹、SPLAY樹,尾碼樹等等..
Time of Update: 2018-12-04
/* 最大流 拆點 簡單圖論 SAP 題意:有一些蜥蜴在一個迷宮裡面,求這些蜥蜴還有多少是無論如何都逃不出來的。蜥蜴最遠能夠跳躍距離D,若某一時刻蜥蜴能跳到迷宮外圍,則算>蜥蜴逃出來了。每隻蜥蜴有一個初始的位置,題目保證這些位置都有一些柱子,每次蜥蜴從一個位置跳到另外一個位置的時候,就會由於反作用力使得一根柱子倒下。每根柱子都有最大jump數,若有超過jump個蜥蜴從該跟柱子跳過(也就是leap次),則柱子會倒塌。距離是算曼哈頓距離。
Time of Update: 2018-12-04
/* 線段樹 擴點 擴線 區間覆蓋 好題 題意:給出n條平行於Y軸的線段(y', y'', x),然後3條一組,問有多少組可見線段組。“可見”的定義為,兩條線段能由一條水平先串連但不交於其它的線段。“可見線段組”的定義為該組內的3條線段兩兩可見。 心得:之前看poj_3225,死活看不懂,跳過了。做這道題,它們的離散化方法是一樣的:線段 = 一個閉區間 +
Time of Update: 2018-12-04
/* 最短路, 終點集合到s的最遠距離最短,求s. 即已知終點集{d}求一s使得Min{ max{ dis(s, di) } } 好題 思路: 多次單源最短路,選出最大值 在對每個x進行分層搜尋的過程中, 用max_d[y]記錄每個地區x到達地區y的最短距離中的最大值. 最後求得的Star Value就是max_d[]中的最小值. 由於題目的特殊性`邊權都為1`,所以可以藉助這一性質變換一下SPFA使其更快。
Time of Update: 2018-12-04
POJ 計算幾何入門題目推薦(轉)
Time of Update: 2018-12-04
【HDU】2255奔小康賺大錢 模板題★1533Going Home 模板題★2426Interesting Housing Problem KM★3395Special Fish KM★2282Chocolate KM★2813One fihgt one KM★1853Cyclic Tour 最小費用圈覆蓋★★3488Tour 最小費用圈覆蓋★★3435A new Graph Game 最小費用圈覆蓋★★3722Card Game 最小費用圈覆蓋★★3718Similarity 求相似性★★2
Time of Update: 2018-12-04
#include<cstdio>#include<cstring>#include<cmath>using namespace std;int main(){ //freopen("in.txt","r",stdin); int cas,n,L,R; //long long sum; int sum; scanf("%d",&cas); while(cas--) { scanf("%d%d%d",
Time of Update: 2018-12-04
/* 最小公用祖先 題意: 給出一顆無向有邊權樹, 詢問若干個(u,v)對的距離. 所謂LCA 的Tarjan演算法, 實際上就是在建樹的過程中把query中的lca給計算出來, 所以稱為`離線演算法` . 是的, 本質就是這麼簡單, 好多解釋都搞複雜了. 步驟略, 自己google. 理解這個演算法一定要抓住`遞推`的思想(也有遞迴在裡面, 也要抓住). Tarjan是利用並查集實現的, 在遞推過程中, 一棵樹的root節點代表這棵樹(聯絡並查集來想), 這