24h購物| | PChome| 登入
2014-01-24 11:44:53| 人氣1,365| 回應0 | 上一篇 | 下一篇

[ZJ] a764、a768、a779

推薦 0 收藏 0 轉貼0 訂閱站台

內容 :

如此這般,Tony搬到了嚮往以久的東京居住。

到了一個新地方的念頭當然就是先把附近有名的景點弄熟!Tony列出了N(1 <= N <=400)個景點,分別由1編號到N,以及M(1 <= M <= 10000)條道路,每條道路連接著兩個景點。
Tony決定選擇N個景點當中的其中一個當作起點,隨意繞過任幾個不重複的景點再回到原地,並且Tony希望他走過不同的景點至少有3個。由於Tony剛剛搭飛機來北海道非常非常的累,所以Tony希望讓旅途盡量短一點這樣他可以快點回家睡覺。

輸入說明 :

第1行有兩個正整數N,M,代表地標數以及道路數。

接下來的M行各有三個整數i,j,k,代表i景點到j景點存在一條距離k的雙向道路。

輸出說明 :

輸出最短的距離。如果不存在這樣的路徑,請你輸出"No solution."(不含括號)。

範例輸入 : 
5 7
1 4 1
1 3 300
3 1 10
1 2 16
2 3 100
2 5 15
5 3 20

範例輸出 :

61

#include <stdio.h>
#include <algorithm>
using namespace std;
int f[505][505], g[505][505];
int main() {
int n, m;
int i, j, k, x, y, v;
while(scanf("%d %d", &n, &m) == 2) {
for(i = 1; i <= n; i++)
for(j = 1; j <= n; j++)
g[i][j] = f[i][j] = 0xfffffff;
while(m--) {
scanf("%d %d %d", &x, &y, &v);
f[y][x] = min(f[y][x], v);
f[x][y] = f[y][x];
g[x][y] = g[y][x] = f[x][y];
}
int ret = 0xfffffff;
for(k = 1; k <= n; k++) {
for(i = 1; i < k; i++) {
for(j = i+1; j < k; j++) {
if(i != j) {
ret = min(ret, g[k][i] + f[i][j] + g[j][k]);
}
}
}
for(i = 1; i <= n; i++)
for(j = 1; j <= n; j++)
f[i][j] = min(f[i][j], f[i][k] + f[k][j]);
}
if(ret == 0xfffffff)
puts("No solution.");
else
printf("%d\n", ret);
}
return 0;
}

內容 :

小蝦有天放學後非常無聊,正在玩弄他的鉛筆,突然,他想到一個問題:給N條整數邊,問說可以組出幾種直角三角形。
對了,他說他的邊不會有重複的。 

輸入說明 :

第一個數字N代表接著有幾條邊。
邊的長度都在 2^30之內。

輸出說明 :

輸出一個貌似答案的整數。

範例輸入 : 
8
3 4 5 12 13 7 24 25

範例輸出 :

3

#include <stdio.h>
#include <set>
using namespace std;
int main() {
int n;
long long x[3005];
int i, j;
while(scanf("%d", &n) == 1) {
set<long long> S;
for(i = 0; i < n; i++) {
scanf("%lld", &x[i]);
S.insert(x[i]*x[i]);
}
int ret = 0;
for(i = 0; i < n; i++) {
for(j = i+1; j < n; j++) {
ret += S.find(x[i]*x[i] + x[j]*x[j]) != S.end();
}
}
printf("%d\n", ret);
}
return 0;
}

內容 :

回文是指一串單字、片語或數字組成的文字,而這串文字由左至右讀和由右至左讀是一樣的 (不含標點符號) 。請你寫一個程式判斷輸入字串是否為回文。 

輸入說明 :

輸入多個字串。

輸出說明 :

請重複一次輸入字串,如果是回文請輸出"-- is a palindrome" (不含引號) ,不是則輸出"-- is not a palindrome" (不含引號) 。
範例輸入 : 
Madam, I'm Adam.
12345321

範例輸出 :

Madam, I'm Adam.
-- is a palindrome
12345321
-- is not a palindrome


#include <stdio.h>

int main() {
char s[1024];
while(gets(s)) {
int i, j;
puts(s);
for(i = j = 0; s[i]; i++) {
if(s[i] >= 'a' && s[i] <= 'z')
s[j++] = s[i];
if(s[i] >= 'A' && s[i] <= 'Z')
s[j++] = s[i] - 'A' + 'a';
if(s[i] >= '0' && s[i] <= '9')
s[j++] = s[i];
}
int f = 1;
for(i = 0, j--; j >= 0; i++, j--) {
if(s[i] != s[j]) f = 0;
}
printf("-- is %sa palindrome\n", f ? "" : "not ");
}
return 0;
}

台長: Morris

是 (若未登入"個人新聞台帳號"則看不到回覆唷!)
* 請輸入識別碼:
請輸入圖片中算式的結果(可能為0) 
(有*為必填)
TOP
詳全文