a - 咕咕東的奇遇
題意咕咕東是個貪玩的孩子,有一天,他從上古遺跡中得到了乙個神奇的圓環。這個圓環由字母表組成首尾相接的環,環上有乙個指標,最初指向字母a。咕咕東每次可以順時針或者逆時針旋轉一格。例如,a順時針旋轉到z,逆時針旋轉到b。咕咕東手裡有乙個字串,但是他太笨了,所以他來請求你的幫助,問最少需要轉多少次。
解題思路
對於每個字元求一遍
#include
#include
#include
using
namespace std;
intmain()
else r= current - target;
if(target < current)
else l= target - current;
if(r
=r;else sum+
=l; current = target;
}printf
("%d\n"
,sum)
;return0;
}
b.
題意
解題思路
把每天的生煎數分為奇偶兩類,一開始mod2先變成0 1兩種數,因為每一天都必須滿足,所以從頭列舉,記一下上一天有沒有領券即可,中間出現0但有券或者最後一天還剩券則no 否則yes。
#include
#include
using
namespace std;
int n;
intmain()
}if(ct ==1)
int i =0;
for(
; i < n; i++
)else
break;}
}if(i==n)
printf
("yes\n");
else
printf
("no\n");
return0;
}
c - 可怕的宇宙射線
解題思路:dfs記憶化搜尋。覆蓋區域為300*300.
用乙個四位陣列vis[x][y][cnt][d],表示(x,y)在第cnt次**,d方向延伸。以向右為x方向正方向,向上為y方向正方向。剛開始對於每次**後的方向不知道怎麼表示,後面發現每次**的方向是往原方向偏45度。將方向從(0,1)開始逆時針轉一圈,存在dir陣列中。每次**後的方向為(d+1)%8,(d+7)%8。為了避免射線交叉重複,用mp陣列來記錄已經到達的點的座標。遞迴終止條件是層數大於n,此時return。
#include
using
namespace std;
int vis[
330]
[330][
31][8
],mp[
330]
[330
],n,a[35]
,ans;
int dir[8]
[2]=
,,,,
,,,}
;void
dfs(
int x,
int y,
int cnt,
int d)
dfs(x,y,cnt+1,
(d+1)%
8);dfs
(x,y,cnt+1,
(d+7)%
8);}
intmain()
程式設計思維與實踐 CSP M1補題
題目描述 咕咕東是個貪玩的孩子,有一天,他從上古遺跡中得到了乙個神奇的圓環。這個圓環由字母表組成首尾相接的環,環上有乙個指標,最初指向字母a。咕咕東每次可以順時針或者逆時針旋轉一格。例如,a順時針旋轉到z,逆時針旋轉到b。咕咕東手裡有乙個字串,但是他太笨了,所以他來請求你的幫助,問最少需要轉多少次。...
程式設計思維與實踐 CSP M1補題
思路 這一題沒有太多難度,就是模擬實際的轉盤,運用好模運算,注意好細節即可。include char input 20000 char table 27 int main int word 0 int needle 0 int count 0 while input word 0 else word...
程式設計思維與實踐CSP M1 補題
題目描述 咕咕東是個貪玩的孩子,有一天,他從上古遺跡中得到了乙個神奇的圓環。這個圓環由字母表組成首尾相接的環,環上有乙個指標,最初指向字母a。咕咕東每次可以順時針或者逆時針旋轉一格。例如,a順時針旋轉到z,逆時針旋轉到b。咕咕東手裡有乙個字串,但是他太笨了,所以他來請求你的幫助,問最少需要轉多少次。...