破门锁
幾年前,在孫老大擔(dān)任GDUTACM集訓(xùn)隊教練之前,集訓(xùn)隊的日子過得非常慘淡,實驗室的桌子非常老舊,動不動就塌,集訓(xùn)隊員們也是苦不堪言。幸運的是,在孫老大的領(lǐng)導(dǎo)下,集訓(xùn)隊的日子走向了小康,所有東西都漸漸的有了,打印機(當(dāng)然是激光的)什么的,高速上網(wǎng)(10+M每秒的下載)什么的。更加重要的是,集訓(xùn)隊出去比賽的經(jīng)費翻了幾番,并且看起來肯定還會繼續(xù)增長,總之,集訓(xùn)隊正在大踏步向前飛奔。
????沐浴在改革開放的春風(fēng)里,月亮在白棉花般的云朵里穿行,晚風(fēng)吹來一陣陣快樂的歌聲,隊員們坐在高高的谷堆旁邊,聽孫老大講過去的故事。
????那時候,集訓(xùn)隊沒有門鎖,大家只能用一個不知道用了多久的密碼鎖來鎖門(就是鎖單車那一種),這個密碼鎖有3位,每位有1~N共計N個數(shù)字,其中1和N相鄰(因為是個圈),密碼鎖有一個用戶密碼(A1,B1,C1),也有一個工廠密碼(A2,B2,C2)(因為是冒牌廠商做的,所以比較坑爹=?=)。更坑爹的是,由于年久失修,當(dāng)開門的人使用的密碼和正確密碼的每一位相差都不超過2的時候,門鎖就會打開。(摔~!)
????比如用戶密碼是(1,2,3),工廠密碼是(4,5,6),N為9,這個時候,如果使用密碼(1,9,5)門鎖就會被打開,因為它和用戶密碼分別相差了(0,2,2)。同理,密碼(2,4,8)也可以開門,因為它和工廠密碼的差距分別為(2,1,2)。但是(1,5,6)就不可以了,因為它和用戶密碼的差距為(0,3,3),和工廠密碼的差距為(3,0,0)。
????現(xiàn)在,孫老大問你,一共有多少個密碼可以打開這個破門鎖。
Input
輸入數(shù)據(jù)的第一行只有一個數(shù)字,表示測試數(shù)據(jù)的數(shù)量。接下來每組數(shù)據(jù)占3行。
第一行只有一個數(shù)字N(1<=N<=100)。。
接下來一行有三個數(shù)字,表示用戶密碼。。
第三行有三個數(shù)字,表示工廠密碼。。
Output
每組數(shù)據(jù)輸出一行,表示一共有多少個密碼可以開鎖。Sample Input
1 50 1 2 3 5 6 7Sample Output
249AC代碼:
每一組數(shù)據(jù)最多有250個答案,5*5*5*2, #include<iostream> #include<cstdio> #include<cmath> using namespace std; int N; int tt(int a,int b){ //求出重復(fù)的數(shù)字個數(shù)int t,q,w;if(a>b){t=a;a=b;b=t;}q=b-a;w=N+a-b;q=min(q,5); //最多只能為5w=min(w,5);return 10-q-w; } int main() {int t,i,j;int a[3],b[3];while(cin>>t)while(t--){cin>>N;for(i=0;i<3;i++)cin>>a[i];for(i=0;i<3;i++)cin>>b[i];if(N>5){j=1;for(i=0;i<3;i++)j*=tt(a[i],b[i]);cout<<250-j<<endl;}else cout<<pow(N,3)<<endl;}return 0; }總結(jié)
- 上一篇: mysql添加新用户 开放外网访问
- 下一篇: 异星人