URAL 1102 Strange Dialog

一個元素一個元素往後判斷,注意inputon和inputone等特殊情況的判斷。用逆序判斷會更加簡單 。代碼如下:#include<iostream>#include<cstdlib>#include<cstring>#include<cstdio>#include<cmath>using namespace std;char a[10000002];int solve(){ int len = strlen(a), flag =

UVa 270 – Lining Up

先依據橫座標和縱座標的大小排一下序,然後以兩個點為基準,判斷一下其他點是否在以這兩點為端點的線上,按照點的大小順序依次掃過所有兩個點為基準的線,注意判斷點是否線上上時只判斷比其小的點(即:朝一個方向判斷,掃過的點便不再判斷)~代碼如下:#include<iostream>#include<cstdlib>#include<cstring>#include<cstdio>#include<cmath>using namespace

UVa 10245 – The Closest Pair Problem

看著比較簡單,但10000的資料量讓我TL了兩次,需要進一步最佳化一下,剪一下枝後,AC了,rank還58,驚喜 ~~代碼如下:#include<iostream>#include<cstdlib>#include<cstring>#include<cstdio>#include<cmath>using namespace std;struct point{ double x, y;} po[10000 + 2];int cmp(

HDU 3650 Hot Expo

Hot ExpoTime Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 886    Accepted Submission(s): 423Problem DescriptionSunny wants to go to the Shanghai Expo this month and he intends to visit n (1 <=

大數運算小結

        到大數運算(六)為止,總結的大數運算基本已經算告一段落了,這些代碼大多都是曾經做的一些OJ上的題,稍加總結以後便放上來了。其中有大數的加,乘,階乘,除,求餘,以及冪,除最後一個冪是高精度的外,其他基本僅是整型大數的運算。     

sscanf詳解(一)

/*非本博總結*/sscanf名稱:sscanf() - 從一個字串中讀進與指定格式相符的資料. 函數原型:Int  sscanf( string str, string fmt, mixed var1, mixed var2 ... );int  scanf( const char *format [,argument]... ); 說明:sscanf與scanf類似,都是用於輸入的,只是後者以螢幕(stdin)為輸入源,前者以固定字串為輸入源。其中的format可以是一個或多個 {%[*] 

UVa 10132 – File Fragmentation

好久不交題了,而且發現最近狀態惡劣的不行,AC率噁心到不行 ~這個題代碼有點長,但實際思路很簡單,qsort 拍一下序,然後,將最長的字串與最短的字串搭配,因為一個字串最多分成兩個不同的最長的字串,所以最長與最短子字串搭配最多8種情況,枚舉出來,其中有一個就是所求的答案。代碼如下:#include <iostream>#include <cstring>#include <cstdlib>#include <cstdio>using

UVa 167 – The Sultan’s Successors

經典“八皇后問題”,把所有情況全部遍曆一遍,統計最大值即可。代碼如下:#include <iostream>#include <cstring>#include <cstdlib>#include <cstdio>#include <cmath>using namespace std;int a[9][9], vis[3][20], save[9], n, tot;void search(int cur){ int i;

ZOJ 1354 Extended Lights Out

Extended Lights OutTime Limit: 2 Seconds      Memory Limit: 65536 KBIn an extended version of the game Lights Out , is a puzzle with 5 rows of 6 buttons each (the actual puzzle has 5 rows of 5 buttons each). Each button has a light. When a button is

UVa 10012 – How Big Is It?

以為很簡單,十分鐘敲了一個全排列回溯,結果WA了。想了半天,才想到可能存在兩個半徑很大的圓相切,中間夾著很多小的圓(這樣單純的全排列只判斷相鄰兩圓的話就可能出現圓圓相交的情況),這樣就需要加一個圓心座標和一個原點記錄位置來做特判,令當前放置的圓與前面所有的圓相切求出最大的據原點的距離(這樣就可以保證排除圓圓相交的情況),再加上前面的距離即為放置這個新的圓的位置座標。代碼如下:#include <iostream>#include <algorithm>#include &

大數運算 (四)—— 大數階乘

/** 大數階乘 **/// 最大可以計算到10000!#include <stdio.h>#include <string.h>#define N 36000 //10000的階乘大約要36000位int f[N];int main(){ int i,j,n; int c,s; while(scanf("%d",&n)!=EOF) { memset(f,0,sizeof(f)); f[0]=1;

UVa 140 – Bandwidth

全排列,統計記錄每個排列中“頻寬”最大的值,最後輸出所有最大值中最小的那個。代碼如下:#include <iostream>#include <algorithm>#include <cstring>#include <cstdlib>#include <cstdio>#include <cmath>using namespace std;int cct, ahl[27], map[27][27];int save[9],

Uva 297 – Quadtrees

抱著打死也不用鏈表的精神,我把這個題給寫出來了(其實也蠻後悔的,感覺不用鏈表也不是很簡潔)。我的思路基本分兩步,第一步先將兩個字串合成一個,這一步我的處理是非常麻煩的(本來預計沒有這麼麻煩的),分九種小的情況,其中有兩種還需要進行特殊的遞迴處理;第二步相對比較簡單,將合成的字串用個遞迴函式類比四叉樹便可搞定

UVa 208 – Firetruck

總體思路很簡單,回溯,但直接用矩陣回溯會TLE。因為可能在1與目標點之間不存在通路(即:1 與 目標點分別存在於兩個隔絕的聯通圖中),這樣如果直接從1開始往下回溯,會無謂檢查到許多無用的點浪費時間,我們可以先將所有與目標點聯通的點存於一個數組中,僅在這個數組中尋找,就省去很多無謂的尋找時間。代碼如下:#include <iostream>#include <algorithm>#include <cstring>#include <cstdlib>

HDU 4403 A very hard Aoshu problem

回溯,兩個數字之間標記0,1,最後將標記1的位置放‘+’號,‘0’的位置處兩邊數字合成一個數,最後將每兩個數之間放等號,檢查是否相等。代碼如下:#include <iostream>#include <algorithm>#include <cstdlib>#include <cstring>#include <cstdio>#include <cmath>using namespace std;int len, num[1

UVa 539 – The Settlers of Catan

搜尋回溯。其實本來是比較簡單的一個題,但因為看錯題,剛開始做麻煩了,不過也AC了,覺得程式跑的有點慢,所以看了一下其他人寫的代碼,結果發現自己審錯題想麻煩了。題目中不會出現兩個點之間出現多條重複邊的情況,而我剛開始考慮到這種情況,由此便不能用二維數組 vis[x][y] 的方式表示某兩點之間的邊是否訪問過,我是用了一個一維數組將所有邊都存起來然再處理的,這樣過程中會非常的麻煩。而如果不考慮兩點之間的重複邊,則直接用二維數組記錄,則非常簡單。如(考慮兩點之間重複邊情況):輸入2 41 00 11

UVa 141 – The Spot Game

題意實際上要求每次比較四個圖形(其中三個是旋轉翻轉得到的),然後通過比較如果這四個圖形之前都沒有出現過,則將這四個圖形全部存起來,以備以後進行比較(還有一點需要注意的,就是如果原圖形經過旋轉得到的圖形和原圖形相同,這種情況是不算重複的)。剛開始理解成每次幾個比較完之後只把原圖形存起來了,WA了好幾次。方法:因為資料量較小,直接將二維圖存成一維數組,然後暴力枚舉比較就可以。代碼如下:#include <iostream>#include

UVa 188 – Perfect Hash

按照題目說的去類比就可以,唯一值得注意的是,兩個單詞之間可能不止一個空格,因為這個RE了好幾次。代碼如下:#include <iostream>#include <algorithm>#include <cstring>#include <cstdlib>#include <cstdio>#include <cmath>using namespace std;int main(){#ifdef test

UVa 165 – Stamps

這個題題目大意就比較難理解。題意:給定 h(貼郵票位置數),k(允許使用的郵票面值數) (h+k<=9)  求n(h,k) (即用k種面值的郵票在最大h個位置拼成連續面值的最大值) 。範例:h=3 k=2。若兩種面值為1,3  則可以拼出 1,2,3,4,5 ,6 ,7 ,9 連續的最大和只到7。因此輸出: 1 3 ->

UVa 10591 – Happy Number

題意:將給出數各個位上的數位平方和加起來得到新的數字,依次往下推新數字,直到得到得到數字1(Happy number)或是與之前重複的數字(unhappy number)。利用雜湊表尋找判重或是直接打表,因為輸入最大是10的9次方的數字,因此得出的數字最大為9*9*9 = 729。代碼一(hash 0.020s):#include <iostream>#include <algorithm>#include <cstring>#include

總頁數: 61357 1 .... 13815 13816 13817 13818 13819 .... 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.