享受遞迴的瀟洒 USACO zerosum

/*ID:fairyroadTASK:zerosumLANG:C++*/#include<fstream>#include<vector>using namespace std;ifstream fin("zerosum.in");ofstream fout("zerosum.out");int N;void dfs(int n, int sum, int curr, vector<char> path) // vector passed by value{

DP到底有多飄逸?看USACO money

看到資料量大到1W,我就知道單純的DFS演算法那是肯定會逾時的,而且一看也基本上看得出來要用DP來處理。不過今兒有勁兒,看看DP到底能比DFS快多少。下面是逾時代嗎。/*ID: fairyroadTASK:moneyLANG:C++*/#include<fstream>using namespace std;ifstream fin("money.in");ofstream fout("money.out");int V, N;long long v[25];long long

無聊的題,USACO control company

記錄哪些公司控制哪些公司,且當每次我們得知某公司控制了某公司百分之多少的股份,就更新控股資訊。如果超過50就遞迴搜尋公司j,每個公司至多隻遞迴一次——這個關鍵,不然程式無法結束,所以得維護一個is_visit數組判斷重複。題沒什麼意思,可能是我想多了,一開始總覺得可以用DP,浪費了不少時間。/*ID: fairyroadLANG: C++TASK: concom*/ #include <algorithm>#include <cstdio>using namespace

水題其實也能反映思維的嚴謹性:USACO The Tamworth Two

簡單的類比。需要記錄方向和座標,進行類比,直到相遇。如何判斷永遠不相遇呢?可以用bool數組儲存已經訪問過的位置資訊。但是一開始我糊塗了,暈透了我,靠。一開始我都沒往下細想就用了兩個3維數組來儲存,前面幾組資料都對,唯獨到了第4組資料我的程式輸出為0,調試最怕的就是很多資料都對,就一些資料不對,這裡還是可以看出USACO的測試資料還是很有水平的,顧及了很多細節和容易掉鏈子的地方。兩個三維數組之間沒有相互制約性,不能保證農民和奶牛是同時——注意同時——訪問了某兩個點。改完後那是天朗氣清惠風和暢。時

USACO Bessie Come Home,Dijkstra演算法的好題

八卦一下,Bessie是俺大學最喜歡的老師之一,英語老師,巨可愛一人,哈哈~~這道題我的思路是BFS+貪心,算是比較典型的Dijkstra演算法的應用,另外兩個牧場之間可能有多條路徑,所以在輸入中要做好預先處理。因為總共只有52個節點,用排列組合也可以算出來只有2704種可能,所以輸入中的許多邊都是沒有用的。最後就是要注意後效性,前面對已經訪問過的節點,有可能會找到新的路徑,使得距離Z節點更近,所以要做兩次比較,即下面這段代碼,因為這一點,我又WA了一次,唉。。。if(path_len[i]+g

輸入輸出細節處理,USACO Fractions to Decimals

演算法還是很簡單的,基本上學過小學除法算術的都知道,因為n/d的每位元運算所得的餘數只可能是0..d-1,如果在某處出現一個餘數之前曾經出現過(在小數位上),那麼可以肯定此時從該處到上次用出現這個這個商之間存在迴圈節。這樣,就可以用基本的標記法就可以了。所以這題其實麻煩的是輸出的處理,又要加括弧,又要求每行只能輸出76個字元。麻煩!害得我又WA了兩次,鬱悶中。/*ID: fairyroadTASK: fracdecLANG:

jabberd編譯安裝

一、準備需要安裝的軟體包(libidn,udns,gsasl),分別從以下地址下載:      wget ftp://ftp.gnu.org/gnu/gsasl/libgsasl-1.6.1.tar.gz      wget http://www.corpit.ru/mjt/udns/udns-0.2.tar.gz     wget http://ftp.gnu.org/gnu/libidn/libidn-1.9.tar.gz    1, 作業系統為RedHat Enterprise

靜態庫、共用庫、動態庫的建立和使用

通常庫分為:靜態庫,共用庫,動態載入庫,。下面分別介紹。一、 靜態庫:1.概念:    靜態庫就是一些目標檔案的集合,以.a結尾。靜態庫在程式連結的時候使用,連結器會將程式中使用    到函數的代碼從庫檔案中拷貝到應用程式中。一旦連結完成,在執行程式的時候就不需要靜態庫了。     由於每個使用靜態庫的應用程式都需要拷貝所用函數的代碼,所以靜態連結的檔案會比較大。2.建立與應用:    首先建立庫檔案libhello.c    #include <stdio.h>    void

USACO:frac1

基本思路是受到了M路歸併的啟發。從這裡也看得出來基礎的重要性。 /*ID: fairyroadTASK: frac1LANG:C++*/#include<fstream>#include<algorithm>using namespace std;ifstream fin("frac1.in");ofstream fout("frac1.out");#define LEN 160int n;struct fraction{ int up, down;

couch base使用記錄

1. couch base測試時,上報錯誤:[push@pushtest bin]$ ./cbworkloadgen -n localhost:8091Traceback (most recent call last):  File "/opt/couchbase/lib/python/cbworkloadgen", line 79, in _run    options.verbose)  File

第十二章—–第十三章 建構函式 複製建構函式 賦值操作符解構函式 static類成員

建構函式1.建構函式可以包含一個建構函式初始化列表:以一個冒號(:)開始,接著是一個億逗號分隔的資料成員列表,每個資料成員後面跟一個放在圓括弧中的初始化式。建構函式初始化式只在建構函式的定義中而不是在聲明中指定。2.從概念上講,可以認為建構函式分兩個階段執行:a 初始化階段;b 普通的計算階段。計算階段由建構函式體中的所有語句組成。不管成員是否在建構函式初始化列表中顯示初始化,類類型的資料成員總是在初始化階段初始化。初始化發生在計算階段開始之前。3.有些成員必須在建構函式初始化列表中進行初始化。

USACO Agri-Net,最小產生樹

複習。想想要是大二剛開始搞CS那會就一邊做USACO多好呀,知識和技能想必一定會紮實很多。需要找出所給圖的最小產生樹。我們使用這樣的演算法:在每一步,將不在樹中的長度最小的邊加入樹中。典型的Prim演算法,Prim演算法的本質思想是貪心,貪心從來都是很快的,而且簡單好理解。總是忘了鄰接矩陣表示無向圖時矩陣的對稱性,又WA了一次,即下面這段代碼:weight[edges[min_index].start][edges[min_index].end] =

第三章 標準庫類型

第二章1.為了相容C語言,C++中所有的字串字面值都有編譯器自動在末尾添加一個Null 字元。2.引用是一種複合類型,通過在變數名前添加“&”符號來定義。複合類型是指用其他類型定義的類型。引用必須用與該引用同類型的對象初始化。        因為引用只是它綁定的對象的另個名字,作用在引用上的所有操作事實上都是作用在該引用綁定的對象上。       

USACO Score Inflation,完全背包問題

自從dd_engine老大《背包問題九講》橫空出世,背包問題的精髓基本已道盡。嚴重推薦。反正我是又老老實實讀了一遍dd老大的文章的,大牛如此,榜樣在先呀。/*ID: fairyroadTASK: inflateLANG: C++*/#include<fstream>using namespace std;ifstream fin("inflate.in");ofstream fout("inflate.out");int dp[10010];int main(){ int m,

演算法導論 第十章 基本資料結構

10.1-6題目:說明如何用兩個棧來實現一個隊列,並分析有關隊列操作的已耗用時間。解法:1.有兩個棧s1和s2,先往s1插入入a,b,c,這做的都是enqueue操作。2.現在要做dequeue操作,即要得到a,這時可以將s1中的元素全部彈出並存入s2中,這時s2中元素的順序(從底部到頂部)為c,b,a,這時做s2.pop()操作即可得到a。3.如果繼續做enqueue操作,比如插入d,f,則把d,f插入到s1中,4.此時若要做dequeue操作,則直接彈出s2中的b,它是目前為止,呆得時間最長

第九章—–第十章 容器和演算法

第九章 順序容器vector  list  deque1.要定義某種特殊的容器,必須在容器名後加一對角括弧,角括弧裡面提供容器中存放的元素的類型:vector<string>    svec;                   //empty vector that can hold strings所有的容器類型都定義了預設建構函式,用於建立指定類型的空容器物件。預設建構函式不帶參數。除了預設建構函式,容器類型還提供其他的建構函式,使程式員可以指定元素初值,C<T>

12.1-3

題目:給出一個非遞迴的中序樹遍曆演算法。(提示:有兩種方法,在較容易的方法中,可以採用棧作為輔助資料結構;在較為複雜的方法中,不採用棧結構,但假設可以測試兩個指標是否相等。)演算法思想:1.採用棧的話,先尋找最左邊的節點,把經過的節點都存入棧中,第一個被彈出來的為最左節點,那麼訪問其右子樹,對右子樹也像前面一樣遍曆,整個流程跟遞迴一樣。2.不採用棧的話,先是訪問最左節點,然後訪問其右子樹,然後回溯到最左節點的父節點,不斷重複這個過程,思路還是一樣。這裡參考了重劍無鋒的http://blog.cs

第十一章 泛型演算法

         標準庫並沒有為每種容器類型都定義實現這些操作的成員函數,而是定義了一組泛型演算法:因為它們實現共同的操作,所以稱之為“演算法”;而“泛型”指的是它們可以操作在多種容器類型上-----不但可作業於vector或list這些標準庫類型,還可用在內建數群組類型、甚至其他類型的序列上。1.標準演算法固有地獨立於類型     

編程之美2.14 解法二

#include <iostream>using std::endl;using std::cout;using std::cin;int c=0;                                                                                                                                                    //為了測試int

USACO holstein, hamming

微博: http://t.sina.com.cn/g7tianyi豆瓣:http://www.douban.com/people/Jackierasy/廣度優先搜尋的好題,廣搜的好處之一就是往往可以直接找到最短路徑,而且,就本題而言,還可以大規模剪枝。最佳化的話估計還可以用位元運算,那樣最後一組資料應該也可以在0s內AC掉。 /*ID: fairyroadTASK:holsteinLANG:C++*///#define DEBUG#include<deque>#include<

總頁數: 61357 1 .... 17802 17803 17804 17805 17806 .... 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.