hdu(1175)連連看

險過。。和勝利大逃亡差不多。。一樣的道理。。注意進行剪枝,不滿足條件的直接NO,不進入dfs之中。。 #include"stdio.h"#include"string.h"#include"queue"int map[1001][1001];using namespace std;int n,m,visit[1001][1001];int sx,sy,ex,ey;struct point{ int x,y; int step;};int judge(int x,int y){  if(x>

hdu(1015)Safecracker

#include<stdio.h>#include<math.h>#include<stdlib.h>#include<string.h>int cmp(const void *a, const void *b){    return *(char *)b-*(char *)a;}int main(){    int target,len,c[50000],flag,i,j,w,r,q;    char a[50000];   

UVa 10392: Factoring Large Numbers

這題很簡單,只是要求輸出大數的素因子。只要注意使用long long 型的數就可以。我的解題代碼如下:#include <iostream>#include <cstdio>#include <cstring>#include <cmath>#include <cstdlib>using namespace std;int main(){long long N;while(cin >> N && N>=

(zzuli)1996 DP

對於dp不能空想,要從簡單的地方著手,進行分析。。最後得出狀態轉移方程。。對於初始化,沒說的,只要綠球為零,則都為一種情況。。#include"stdio.h"#include"string.h"__int64 a[21][21];int main(){int n,m,i,j;while(scanf("%d%d",&n,&m)!=EOF){memset(a,0,sizeof(a)); for(i=0;i<=n;i++) a[i][0]=1;for(i=1;i<

UVa 10879: Code Refactoring

這題只要用兩種方式分解一個不超過10,000,000的數就可以了。很簡單就能過了。我的解題代碼:#include <iostream>#include <cstdio>#include <cstring>#include <cmath>#include <cstdlib>using namespace std;int main(){int N;int K;cin >> N;for(int k=0; k<N; k++){

UVa 10110: Light, more light

這題如果直接枚舉n的因子進行計數會逾時。下面對這題進行分析以找到正確解法:對n進行因數分解:  n = a0^k0 * a1^k1 * a2^k2 * ...... * am^km則n的因子個數為(1+k0)*(1+k1)*(1+k2)*......*(1+km).對題意分析知n有奇數個因子時輸出“yes”,故上式中若且唯若k0, k1, k2, ......, km均為偶數時n的因子數為奇數並輸出“yes“。而此時由於 n = a0^k0 * a1^k1 * a2^k2 * ...... *

hdu(1563)Find your present!

 整數的異或是先把它們化成二進位,再按位異或。比如3^5, 3=011,5=101,兩數按位異或後為110,即6。幾個數異或滿足交換律。2^3^2=2^2^3=0^3=3. 兩個相同的數異或為0,普通數都出現了偶數次,所以它 們異或後都是0,而0與那個特別數異或後還是那個特殊數。#include"stdio.h"int main(){ int

UVa 550: Multiplying by Rotation

這道題可以由第一個乘數的已知末位元向前推出所有位上的數。例如:已知所給進位基數為10,第一個乘數的末位元為7,第二個乘數為4列出如下式的乘法算式:                          7X                       4--------------------------                進位為0那麼下一步將得到:                        87X                       4-------------------

UVa 10596: Morning Walk

這題需要判斷兩個地方:所有點是否在同一個集合中以及各點的度是否均為偶數(即是否可以構成歐拉迴路)。用dfs得到一個連通分量中點的個數,判斷是否與總的點數目相等即可知道是否所有點均在一個連通分量中。My Code如下:#include <iostream>#include <cstdio>#include <cstring>#include <cmath>#include <cstdlib>#include <string>#

UVa 401: Palindromes

這是一道簡單的字串處理問題,需要判斷所給字串是否是迴文或是“鏡子串”。迴文的判斷:只需要判斷串的首尾字元是否相同,然後首尾同時向中間移一個字元再判斷,如此迴圈。“鏡子串”的判斷:先將原串替換為reverse後的串,然後與原串比較是否相同即可。My Code如下:#include <iostream>#include <cstdio>#include <cstring>#include <cmath>#include

UVa 568: Just the facts

這題要求N!的末尾非零位,考慮用模除法保留階乘計算中每次乘法後所得結果的最後幾位元。當遇到乘數為5的倍數時,從保留的最後幾位元中分出2與乘數因子中的5配對。階乘做完後模10得到結果。另:這種方法只適合N較小的情況。保留每次乘積的至少末5位,因為計算3125!的對飲結果時如果保留的位元過少,將沒有足夠的2與3125=5^5中的5匹配消去,會得到錯誤結果我的解題代碼如下:#include <iostream>#include <cstdio>#include

UVa 113: Power of Cryptography

這道題要求p開n次方的結果。貌似要用大整數類,但仔細看會發現p的範圍並不超過double類型的表示範圍(負值取值範圍為 -1.7976E+308 到 -4.94065645841246544E-324,正值取值範圍為 4.94065645841246544E-324 到 1.797693E+308),所以調用pow函數就可以了。注意pow計算後的結果要進行一個小處理防止結果出現小數。我的解題代碼如下:#include <iostream>#include

UVa 408: Uniform Generator

這道題要求判斷STEP和MOD的值是"Good Choice"還是"Bad Choice"。觀察分析後可以發現step和mod互質時是Good Choice,否則為Bad Choice。下面證明:我們可以這樣分析:因為所以 每次產生的seed只與上一個seed,STEP, MOD有關。當STEP, MOD的值確定時,假定第一個seed的值為0,則所得的seed序列是確定的。該序列為:0, 1*step%mod, 2*step%mod, 3*step%mod, ......,

UVa 10010: Where’s Waldorf?

這道題是簡單的字串搜尋問題。先將輸入的m*n的表中字元全部換為小寫, k次輸入的字串word[]同樣轉換為小寫。然後在表中從左至右,從上到下搜尋word[0], 找到後從word[0]所在位置向8個方向搜尋是否有與word[]相同的字串即可。My Code如下:#include <iostream>#include <cstdio>#include <cstring>#include <cmath>#include

UVa 350: Pseudo-Random Numbers

這題很簡單,只要注意題目給的L並不一定是seed迴圈中的一個seed就可以了。類比就行。代碼如下:#include <iostream>#include <cstdio>#include <cstring>#include <cmath>#include <cstdlib>using namespace std;int is_in[10000];int main(){int Z,I,M,L;int Case=0;while(cin

poj(3216)最小路徑覆蓋

題意:給出Q的街道和M個任務然後給出i*j的矩陣..表示第i個街道到第j個街道的距離 其中-1表示不可到達然後接下來M行有 p t d 表示 任務在p街道 開始時間是t 完成工作花費時間是d問最少派出多少人可以完成M個任務思路:用floyd求出街道之間的最短距離根據兩個任務距離花費時間+完成工作花費時間+工作開始時間<=第二個工作開始時間確定兩個任務是否可以由一個人完成..然後得到一個二分圖..然後用n-最大匹配 求出最短路徑匹配Tips:※ 因為建圖是從0開始建的..而輸入給的街道是從1

UVa 10361: Automatic Poetry

這題是一道簡單的字串處理題。輸入的時候將s1,s2,s3,s4,s5都記下來等到第二行輸出就行。第一行輸入開始時的字元進入s1串中,然後遇到'<' 或 '>' 就將以後讀入的字元 進入下一個串中,遇到’\n'則s5已經結束。My Code如下:#include <iostream>#include <cstdio>#include <cstring>#include <cmath>#include

UVa 10061: How many zero’s and how many digits?

這題有點複雜,題目要求十進位數N!在B進位下表示後末尾的0個數和總的位元。分析如下:1.   求末尾0的個數:思路是將N!分解為素數的積,記錄下<=B的素數因子的個數(小於等於B的原因代碼中解釋了)。然後不斷地從N!的因子中提取因子,使之剛好能乘積為B,則這幾個因子可使N!在B進位下末尾產生一個0,直到提取不出為止。(當然,寫代碼的思路是不斷分解B,當不能找到N!中小於等於B的因子用來分解B時結束)。記錄下上述過程中B被分解了幾次,即在末尾產生了幾個0.2.

UVa 537: Artificial Intelligence?

這是一道簡單的字串處理題。由於'='是DataField中才會出現的,故讀到'='時則已經讀到了等式。用'='前一個字元判斷讀到的是P,U,I中的哪一個,'='後讀入的是一個double型和一個char型,通過讀入的char型判斷是否有尾碼prefix即可。我的解題代碼如下:#include <iostream>#include <cstdio>#include <cstring>#include <cmath>#include

UVa 572: Oil Deposits

這道題很簡單,深搜+標記就可以做出來了。我的解題代碼如下:#include <iostream>#include <cstdio>#include <cstring>#include <cmath>#include <cstdlib>#include <string>using namespace std;char grid[100][100];int m,n;int visit[100][100];const int

總頁數: 61357 1 .... 14322 14323 14324 14325 14326 .... 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.