Time of Update: 2018-12-04
ZOJ 3492Kagome Kagome 題意:這種遊戲是不是叫“籠中鳥”,就是一個孩子坐在中間,然後外面有偶數個孩子把他圍起來,給出外面這一圈孩子數目和他們的排序,中間這個孩子已經偷偷的看到了外面正對著他的是誰,遊戲規則是讓他猜他身後的是誰。 思路:話說給出的孩子的排序是正序或逆序沒感覺有差別。 細節+代碼如下: #include<stdio.h>#include<string.h>struct circle{char name[30
Time of Update: 2018-12-04
ZOJ 3487 Ordinal Numbers 話說今天是暑假ACM訓練第一天呀,感覺自己表現不是很合格。呃……明天一定不要忘了搞個本子做簽到本。 題意: 按照題目要求,根據給出的數字輸出對應的字母。話說這題太簡單,好吧,老師說用它來練一下輸入輸出。 思路:用字串收入資料,然後判斷相應下標的字元。 程式如下: #include<stdio.h>#include<string.h>int main(){int
Time of Update: 2018-12-04
昨天2個二級C語言指標問題把我問到了,重新審視了下自己,C語言真心菜啊,連靈魂都沒掌握!!!!發此文查漏補缺。兩段代碼如下,目的是對字串進行排序。#include <stdio.h> #include <string.h>void main(){ FILE *p; char *s="634,.%@\\w|sq2",c; int i,j,k,n=strlen(s); p=fopen("Design2.dat","w"); for(i=0;i<n-1;i++)
Time of Update: 2018-12-04
ZOJ 1405 Tanning Salon {4933} 題意:給出一個房間的床位元,用字母順序表示所有客人的來去順序,沒有床位客人就會離開,問離開的客人數。 思路:客人來了沒床位不會立刻走,只要保證他走之前有床位空出來他就不會走。具體見代碼。 代碼: #include<stdio.h>int main(){int i,j,k,c,f,n,v,g;char a[30],b[30],h;for(i = 1;;i++){scanf("%
Time of Update: 2018-12-04
ZOJ 1240 IBM Minus One 題意:把輸入的字串中的每個大寫字母換成它在字母表中的後一個字母並且輸出。 收穫:原來ASCLL碼值+1就可以變成下一個字元啊,好神奇! 注意:要麼先判斷是不是Z,要麼先判斷如果不是Z,換成下一個字母之後就continue;,不然Y也會被變成A的…… #include<stdio.h>#include<string.h>int main(){int i,j,n,m;char
Time of Update: 2018-12-04
ZOJ 2388 Beat the Spread! 題意:給出兩場比賽的分數總和以及它們的差,計算出這兩場比賽的分別得分。 重點有三條: 1.分數和一定會是大於等於分數差的。 2.如果分數和和分數差一奇一偶,最終計算出來的兩場比賽的分數會帶小數,不允許(從來不看球賽的女女表示無常識)。 3.分數一定是非負的(題目有寫)。 代碼: #include<stdio.h>int main(){int
Time of Update: 2018-12-04
ZOJ 3600 12年省賽題 Taxi Fare 題意:就是詳細介紹了過去和現在杭州市出租車的收費標準,給出裡程數和等待時間,然後算兩種收費標準的差。 思路:沒什麼說的吧…… 代碼: #include<stdio.h>struct fare{double xfare;double wfare;int fare;}ori,now;int main(){int i,N,s;double x,time;while(scanf("%d",&N)!=EOF){
Time of Update: 2018-12-04
題意:在樹形結構中,每刪除一個節點包含一定費用。其中,若一棵子樹的祖先節點被刪,那麼,它的子孫也同時被刪除,且不需要支付額外費用。問刪去m或者更多的節點的最下費用。做法:樹形背包。樹形結構會有多個,形成一片森林。所以最好還要進行一次01背包,應該算簡單。#include<stdio.h>#include<string.h>#define eps 1e8#define LMT 205typedef struct{ int u,v,next;}line;line
Time of Update: 2018-12-04
ZOJ 1710TheSnail http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=710 題意:蝸牛白天爬一點,累了按照給定的百分比掉一點。給出井深、每天爬的米數、滑落的百分比,問第幾天能爬出來或者掉到井底。 小小類比一下,要注意的是爬和滑落完之後才算這一天的結束。還有就是一定要大於井深或者小於0的時候才算成功或失敗,等於不算。 細節+代碼:
Time of Update: 2018-12-04
ZOJ 1406 Jungle Roads 題目:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=406 第一道資料結構的題目。關於最小產生樹。感謝鐘老師。 題意:頂點類型為字元型。給出一個無向圖的頂點數目、頂點之間的連通情況、各條邊的權值,求最小產生樹,要求輸出這個最小產生樹的各邊的權值之和。 代碼+細節如下: #include<stdio.h>#include&
Time of Update: 2018-12-04
ZOJ 1542 Network 嚴重懷疑ZOJ是想通過這道題的錯誤範例讓所有做它的學生加深深深深對最小產生樹的理解。 題意:給出一個圖的頂點的數目、弧的數目、頂點間的連通訊息、邊的權值。求最小產生樹,要求列印出這顆最小產生樹的最大邊的權值、邊的數目,每條邊的兩個頂點的編號。
Time of Update: 2018-12-04
ZOJ 1494 Climbing Worm {4491} 題意:一隻蝸牛每分鐘從井底爬一定距離,然後的一分鐘往下掉一定距離,如果爬的那一分鐘沒結束就到井口了,算一分鐘,如果爬的那一分鐘正好到井口,就不往下掉了。給井深,每分鐘爬和掉的距離,求爬出井口時間。 思路:這是很久以前在活動室A的杭電上一道相同的題。如果前一分鐘爬的時候沒到井口,就一定有往下掉的距離和時間,把這兩份距離和時間迴圈累加,直到下一分鐘爬的距離大於等於到井口的距離,累加這一分鐘。
Time of Update: 2018-12-04
ZOJ 1350 The Drunk Jailer 題意:有個不稱職的監獄長,有天晚上他瘋了,第1輪他把所有監獄門開啟了,第2輪他把2、4、6……監獄門關上了,第3輪,3、6、9……這些監獄門,如果開著,就關上,如果關著,就開啟,有多少監獄門,他就這樣幹多少次,幹完就下班了。每個監獄門內有1個罪犯,如果等監獄長下班之後才能跑路,問能跑掉幾個?
Time of Update: 2018-12-04
ZOJ 2108 Elevator {4299} 題意:電梯停在0層,給出客人要到達的層數,上升一層須6秒,下降要4秒,停留要5秒,計算總的客人服務完需要的時間。 思路:…… 代碼和細節: #include<stdio.h>int main(){ int t0,t,N,sum,k; while(scanf("%d",&N)!=EOF&&N!=0) //既不是檔案結束,也不能為 0 。 {
Time of Update: 2018-12-04
ZOJ 1622 Switch {4813} 題意:給出一串路燈的開關情況,要求路燈的開關情況是開關開關……或者關開關開……,問至少改變多少個路燈的開關情況。 思路:一共只有兩種情況,具體到第一個燈也是兩種情況,累加判斷一下哪種情況改變個數少。 代碼: #include<stdio.h>int main(){int m,x,k,n,a[10002],i,j;while(scanf("%d",&n)!=EOF){for(
Time of Update: 2018-12-04
USACO 1.1.3 Friday the Thirteenth http://cerberus.delos.com:791/usacoprob2?a=owpOMMkldPW&S=friday 題意:類比。給定一個年數範圍,計算在這些年中周一到周日為某個月13號的次數。 ……不說了,早知道去做沒做完的字串題了。 代碼+細節: #include<stdio.
Time of Update: 2018-12-04
USACO 1.1.4 BrokenNecklace 題意:有一條由三種字元組成的項鏈,從某個字元開始像兩個方向找具有相同顏色的連續的珠子,這兩個方向找的珠子的顏色可以不同,白色的珠子可以被當做紅色的或綠色的。問從某一處斷開這樣找,最多能找到多少個珠子。 被說是USACO上第一道不是智障的題目。換了好多種思路,最後在網路上發現了一種超贊的。就是對每個珠子來說,它的左右兩邊的兩種顏色的連續的珠子的數目只有兩種情況,要麼是 0 ,要麼是它前面的那個珠子的連續數目+1
Time of Update: 2018-12-04
ZOJ 2478Encoding 題意:給出一個字串,如果這個字串中有連續相同的字元,把他們表示成KX的形式(K是連續的次數),然後再把字串輸出。注意:不連續相同的字元,也就是在某段只出現過一次的,輸出的時候前面不用加數字K!K指的是連續出現的次數,不是在整個字串中出現的次數! 細節+代碼如下: #include<stdio.h>#include<string.h>int main(){int n,i,j,m,g,f,a[30];char letter[
Time of Update: 2018-12-04
ZOJ 1154 Niven Numbers 題意:給出一個數字和這個數位進位,判斷這個數字各個數位上的數字和能不能整除這個數字。 代碼如下: #include<stdio.h>#include<string.h>#include<math.h>int main(){int T,i,j,k,m,sumstr,sumint,base,g;char num[1000];scanf("%d",&T);for(i =
Time of Update: 2018-12-04
ZOJ 3499Median http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=4322 找中數麼。貼個題目連結吧,沒貼過。 代碼如下: #include<stdio.h>int main(){int T,n,i,j,k;double t,median,a[1000];scanf("%d",&T);for(i =