a村的元宵節燈會上有一迷題:
請猜謎 * 請猜謎 = 請邊賞燈邊猜
小明想,一定是每個漢字代表乙個數字,不同的漢字代表不同的數字。
請你用計算機按小明的思路算一下,然後提交「請猜謎」三個字所代表的整數即可。
請嚴格按照格式,通過瀏覽器提交答案。
注意:只提交乙個3位的整數,不要寫其它附加內容,比如:說明性的文字。
答案:897
直接for加判斷就好
在對文字進行簡單加密的時候,可以選擇用乙個n位的二進位制數,對原文進行異或運算。
解密的方法就是再執行一次同樣的操作。
加密過程中n位二進位制數會迴圈使用。並且其長度也可能不是8的整數倍。
下面的**演示了如何實現該功能。
請仔細閱讀,填寫空缺的**(下劃線部分)。
注意:請把填空的答案(僅填空處的答案,不包括題面)存入考生資料夾下對應題號的「解答.txt」中即可。
直接寫在題面中不能得分。
void f(char* buf, unsigned
char* uckey, int n)
f(p, uckey, strlen(p));
f(p, uckey, strlen(p));
printf("%s\n", p);
free(uckey);
return
0;}
答案:
// 密匙串需要按位的形式迴圈拼入 uckey中
int i;
for(i=0; i*8; i++)
else
}
為什麼1小時有60分鐘,而不是100分鐘呢?這是歷史上的習慣導致。
但也並非純粹的偶然:60是個優秀的數字,它的因子比較多。
事實上,它是1至6的每個數字的倍數。即1,2,3,4,5,6都是可以除盡60。
我們希望尋找到能除盡1至n的的每個數字的最小整數。
不要小看這個數字,它可能十分大,比如n=100, 則該數為:
69720375229712477164533808935312303556800
請編寫程式,實現對使用者輸入的 n (n<100)求出1~n的最小公倍數。
例如:
使用者輸入:
6 程式輸出:
60使用者輸入:
10 程式輸出:
2520
要求考生把所有函式寫在乙個檔案中。除錯好後,存入與考生資料夾下對應題號的「解答.txt」中即可。
相關的工程檔案不要拷入。
對於程式設計題目,要求選手給出的解答完全符合ansi c標準,不能使用c++特性;
不能使用諸如繪圖、中斷呼叫等硬體相關或作業系統相關的api。
答案:
#include
#include
#include
#include
using
namespace
std;
const
int n = 105;
int n;
int a[n][50];
int b[n] = ;
void multiply()}}
}void printdata(int n)
//for(i=0; i<100; i++)
// cout/while(1);
multiply();
while(cin>>n)
printdata(n);
}return
0;}
古時喪葬活動中經常請高僧做法事。儀式結束後,有時會有「高僧鬥法」的趣味節目,以舒緩壓抑的氣氛。
節目大略步驟為:先用糧食(一般是稻公尺)在地上「畫」出若干級台階(表示n級浮屠)。又有若干小和尚隨機地「站」在某個台階上。最高一級台階必須站人,其它任意。
兩位參加遊戲的法師分別指揮某個小和尚向上走任意多級的台階,但會被站在高階台階上的小和尚阻擋,不能越過。兩個小和尚也不能站在同一台階,也不能向低階台階移動。
兩法師輪流發出指令,最後所有小和尚必然會都擠在高段台階,再也不能向上移動。輪到哪個法師指揮時無法繼續移動,則遊戲結束,該法師認輸。
對於已知的台階數和小和尚的分布位置,請你計算先發指令的法師該如何決策才能保證勝出。
輸入資料為一行用空格分開的n個整數,表示小和尚的位置。台階序號從1算起,所以最後乙個小和尚的位置即是台階的總數。(n<100, 台階總數<1000)
輸出為一行用空格分開的兩個整數: a b, 表示把a位置的小和尚移動到b位置。若有多個解,輸出a值較小的解,若無解則輸出-1。
例如:
使用者輸入:
1 5 9
則程式輸出:
1 4再如:
使用者輸入:
1 5 8 10
則程式輸出:
1 3資源約定:
峰值記憶體消耗 <64m
cpu消耗 < 1000ms
答案:(好像用到了尼姆定理)
#include
#include
#include
#include
#include
using
namespace
std;
int t[1111];
int b[1111];
int c[1111];
void xiazi(int sum)
}printf("-1\n");
return;
}int main()
sort(t+1, t+ sum + 1);
for(int i= 2; i<= sum; i++)
for(i= 1; i< sum; i+=2)
c[i]= c[0]^b[i];
if(c[0]==0)
printf("-1\n");
else
xiazi(sum);
return
0;}
如下圖所示,3 x 3 的格仔中填寫了一些整數。
+–*–+–+
|10* 1|52|
+–**–+
|20|30* 1|
*–+
| 1| 2| 3|
+–+–+–+
我們沿著圖中的星號線剪開,得到兩個部分,每個部分的數字和都是60。
本題的要求就是請你程式設計判定:對給定的m x n 的格仔中的整數,是否可以分割為兩個部分,使得這兩個區域的數字和相等。
如果存在多種解答,請輸出包含左上角格仔的那個區域包含的格仔的最小數目。
如果無法分割,則輸出 0。
輸入格式
程式先讀入兩個整數 m n 用空格分割 (m,n<10)。
表示**的寬度和高度。
接下來是n行,每行m個正整數,用空格分開。每個整數不大於10000。
輸出格式
輸出乙個整數,表示在所有解中,包含左上角的分割區可能包含的最小的格仔數目。
樣例輸入1
3 3
10 1 52
20 30 1
1 2 3
樣例輸出1
3樣例輸入2
4 3
1 1 1 1
1 30 80 2
1 1 1 100
樣例輸出2
10答案:
#include
#include
#include
#define n 10
intmap[n][n]=;
int vis[n][n];
int count=0;//記錄解得節點數
int mincount=1000;//記錄最小的節點數
int result=0;//記錄搜尋過程中的結果和
int dx[4]=;
int dy[4]=;
int half;
void mysearch(int i,int j,int n,int m);//回溯法進行搜尋
int main()
sum+=map[i][j];}}
half=sum/2;
if(max>half) //最大值大於全體數字的一般,無解
memset(vis,0,sizeof(vis));
i=j=0;
mysearch(i,j,n,m);
system("pause");
return0;}
void mysearch(int i,int j,int n,int m) //回溯法進行搜尋
if(vis[x][y]==0 && result+map[x][y] <= half)
else
if (result==half)
else
exit(0);
}for (r=0;r<4;r++)
vis[x][y]=0;
result=result-map[x][y];
count--;
return;
}
2014藍橋杯c組決賽 數字拆分
題目 正整數可以表示為若干正整數的累加和。如,對於正整數n 6,可以分劃為 65 1 4 24 1 1 3 33 2 1 3 1 1 1 2 2 2 2 2 1 1 2 1 1 1 1 1 1 1 1 1 1 現在的問題是,對於給定的正整數n,計算出所有劃分情況。下面的 實現了這個功能。仔細分析,填...
2015藍橋杯決賽
五月二十八號,坐上了開往北京的火車。第一次到北京參加全國性的比賽,第六屆藍橋杯決賽,心裡面還是很興奮的,同時也有一點點緊張,還是希望自己能拿乙個比較好的成績。提前一天到,大家看了看考場,比賽地點在北大計算中心,30號下午一點開始了正式的比賽,比賽時間四個小時。比賽題目型別和初賽差不多,有結果填空,填...
2014藍橋杯決賽 本科B組 生物晶元
x博士正在研究一種生物晶元,其邏輯密集度 容量都遠遠高於普通的半導體晶元。博士在晶元中設計了 n 個微型光源,每個光源操作一次就會改變其狀態,即 點亮轉為關閉,或關閉轉為點亮。這些光源的編號從 1 到 n,開始的時候所有光源都是關閉的。博士計畫在晶元上執行如下動作 所有編號為2的倍數的光源操作一次,...