今天的成都地區賽又悲劇了,通過這三次的地區賽,讓我深深的感覺到了我們與別的隊的差距。努力了三場,連區預賽都進不了,何況是今年的湖南省省賽呢。那麼多前面的隊伍在,讓我感受到了深深的挫敗感啊!今年想拿省賽的一等獎看來是沒有希望了,對不起郭神牛了,他的最後一次比賽不能讓他圓夢了。真是傷心啊。今天的二分題,我很早就出思路了,只可惜一直都在WA,不然的話成績會好很多吧。兩個小時能做出3個題的。後面兩個小時大家加把油,4個題還是可以的。可惜了。我的1003這個程式直到比賽最後也沒有弄出來,比賽的最後一次提交
終於用SPFA AC了~~這題還真是!!稍後要把差分約束和SPFA總結一下~~,覺得這題還是挺有意思的。具體為什麼WA了呢??? 不是那麼清楚~~ 照著做就是AC了。發現形成鏈表就那麼簡單~ 嘿嘿~#include<iostream>#include<queue>#define MAXN 103#define INF 0x7F7F7F7Fusing namespace std;struct Node{ int v,price; Node
so water..../************************* * Creater:Sevenster * * Time:2012.07.31 15:14 * * PID:POJ 2318 * *************************/ #include<iostream> #include<stdio.h>using namespace std;class CPoint{public: double x, y;};
這是水題:#include<iostream>#include<stdio.h>#include<string.h>using namespace std;int main(){ int map[101][101]; int T; int index,i,j; index=1; scanf( "%d",&T ); while( T-- ) { int n; memset(
hehe......做這道題目時,第一想法是應該要用到時圖論的什麼演算法,後來左想右想沒能把圖論經典演算法中的某一種跟這道題扯上邊來。後來竟在紙上寫了個轉移方程,呃,這不就成了動態規划了嗎?無語。。。。score[i] = Max{score[j], score[i-j]}代碼如下:/* ID: guo geer PROG: inflate LANG: C++ */ #include<fstream>#include<iostream>using namespace
對於以前做的區間合并線段樹頗有微詞,對於大神們使用三個數組來記錄節點的情況很是不解。對於當前點,只需要能提供所需的w長度區間即可向下進行判斷,左子樹優先提供,左右子樹合并提供,右子樹最後提供,否則輸出不可行。故我認為只需要一個記錄當前節點的情況的數組即可,不需要三個數組,故用一個數組實際編寫了代碼。後發現此法是不行的....
呵呵。。。。這道題演算法其實是典型的最小產生樹演算法,但還是用了不少時間,主要是這個輸入讓人很糾結啊!/*ID: guo geerPROG: agrinetLANG: C++*/#include<iostream>#include<fstream>#include<string>using namespace std;/*最小產生樹*/int main(){ifstream fin("agrinet.in");ofstream
題目大意:題目給定一面牆(一維),在牆上貼海報,(li-ri)的區間形式張貼n張海報,求最終在牆上能看見多少張海報?區間覆蓋的線段樹的求法是這樣的,每個區間給定一個標記,例如(1,10),(2,6)張貼兩張海報,那麼(1,10)區間的節點就標記為1,(2,6)區間的節點就標記為2,這樣就實現了區間覆蓋,標記完之後會發現(1,1)為標記1,(2,6)為標記2,(7,10)為標記1,這樣會得出三段間斷的區間,怎樣來將這三段區間判斷為2個呢?用一個hash數組,對當前節點的標記進行1,0操作。因為每個
題意: 已知道第一個人每輪會出什麼牌..自己手上有一些牌..問如何出能勝利最多...勝利的條件是比大小..首先看第一位(2,3,4,5,6,7,8,9,T,J,Q,K,A)的偏序...若相等..看第二個(C,D,S,H)的偏序... 題解: 能勝利的..夠邊..然後跑二分圖最大匹配
本文涉及到的程式設計語言:C、C++、Java、C#、Prolog、VB、Scala、Clojure、Haskell、Ada、Python、Ruby、Pascal(Delphi)、Fortran、Lisp、matlab、Perl、Erlang、Boo、Tcl、Bash、C
以前做過最大連續子序列的和,是自己出的思路,用線性演算法還是很簡單的。很久沒有更新我的題解了,1,000題解不知道什麼時候才能出來啊,所以水一題好了。在一段序列中取數字,取出的數字奇數位為加,偶數位為減,要求得出最大的和。本來沒想法,也沒打算去想,中午太累了,休息一下,起來之後就有思路了,一寫1A,再寫再A,好吧這是水題。我只是來騙數量的= =#include<iostream>#define MAXN 150001using namespace std;int date[MAXN]
H – 奇幻方陣Time Limit: 1000MSDescription幻方是在一個n*n 的矩陣中放置從1 到n2的數,每個數只出現一次,並且在每行,每列及對角線的和是一樣的。這個問題的焦點是奇數幻方,它意味著n 是奇數,你將使用下面的方法來構造奇幻方陣,最基本的規律是向右上方移動,下面讓我們一步一步進行。1、讓我們開始在最上面的一行的中間放上1(在這個例中n=3)你的任務是寫一個程式去找出哪個數會被放到右下角在n
NOS神犇部落格裡的一句通常這對初學者來說是一道坎嚇得我3天沒有看線段樹= = 因為鄙人是新手啊.....昨晚臨睡前想弄懂段查詢段更新的線段樹,結果還就真的弄懂了;這種線段樹用了延遲標記以及其操作PushDown;延遲標記代表當前區間的值為多少。PushDown則用來將當前點若有延遲標記則向下推送,後置零。#include<iostream>#define MAXN 100001using namespace std;int sum[ MAXN<<2 ];int
採用二分的方法,尋找是否可見對面的籬笆。左邊,右邊兩方收縮,採用點積叉積判斷是否相交。代碼很醜.... 無視.../*ID:bysenLANG:C++PROG:fence4*/#include<stdio.h>#include<algorithm>#include<cmath>#define MAXP 201#define ERROR 1e-6using namespace std;struct Point{ double
很明顯的DP但是要注意的東西很多。不能盲目初始化,另外看的DP課件說的就是DP的特徵,最優子結構,最優局部特性。找到DP的關鍵就在這裡。/*ID:nocowsLANG:C++PROG:nocows*/#include<stdio.h>#define MAXN 201#define MAXK 101#define mod 9901using namespace std;int main(){ freopen( "nocows.in","r",stdin ); freopen(
G-WindTime Limit : 3000/2000ms (Java/Other) Memory Limit : 65535/32768K (Java/Other)Total Submission(s) : 123 Accepted Submission(s) : 13Font: Times New Roman | Verdana | GeorgiaFont Size: ← →Problem DescriptionN棵樹和M個蘑菇排成一排. 每棵樹有自己的座標和高度,
這些天一直在啃HH牛的線段樹完全版裡面講得比我的結題報告好多了。弱菜飄過......其實我只是看懂了神犇的代碼,然後自己手動類比一遍,然後把CODE默寫出來.....裡面的實現還是有些不懂....乾脆自己寫個注釋利於理解好了.....弱菜覺得難處理的地方就是 合併作業 PushDown 和 PushUp故添加了注釋 #include<iostream>#define MAXN 50005using namespace std;int lsum[MAXN<<2],msum[
摘自維基百科:在數學中,托勒密定理是歐幾裡得幾何學中的一個關於四邊形的定理。托勒密定理指出凸四邊形兩組對邊乘積之和不小於兩條對角線的乘積,等號若且唯若四邊形為圓內接四邊形,或退化為直線取得(這時也稱為歐拉定理)。狹義的托勒密定理也可以敘述為:圓內接凸四邊形兩對對邊乘積的和等於兩條對角線的乘積。它的逆定理也是成立的:若一個凸四邊形兩對對邊乘積的和等於兩條對角線的乘積,則這個凸四邊形內接於一圓。托勒密定理實際上可以看做一種判定圓內接四邊形的方法。幾何證明1.設ABCD是圓內接四邊形。2.在弦BC上,
和上題一樣的解法。代碼也一樣,一樣糾結了很久。一樣不知道為什麼!!#include<iostream>#include<queue>#define MAXN 20001#define INF 0x7F7F7F7Fusing namespace std;struct Node{ int v,price; Node *next;}Edge[MAXN<<2],*ptr[MAXN];int N;int minV,maxV;int
模板題,一直想用SPFA來做,可是這題卻遇到了麻煩。因為對於原來的題來說一直想弄懂那個超級原點是怎麼做的。這次用SPFA弄了N久,還是沒弄出來... 後來果斷用了BellmanFord()裸A啊....原來Bellman比SPFA還要好寫,果斷不用Dijstra了~#include<iostream>#include<queue>#define MAXN 103#define INF 0x7F7F7F7Fusing namespace std;/*struct Node{