2016SDAU程式設計練習二1017

2021-07-11 05:54:35 字數 1510 閱讀 5970

非常可樂 

problem description

大家一定覺的運動以後喝可樂是一件很愜意的事情,但是seeyou卻不這麼認為。因為每次當seeyou買了可樂以後,阿牛就要求和seeyou一起分享這一瓶可樂,而且一定要喝的和seeyou一樣多。但seeyou的手中只有兩個杯子,它們的容量分別是n 毫公升和m 毫公升 可樂的體積為s (s<101)毫公升 (正好裝滿一瓶) ,它們三個之間可以相互倒可樂 (都是沒有刻度的,且 s==n+m,101>s>0,n>0,m>0) 。聰明的acmer你們說他們能平分嗎?如果能請輸出倒可樂的最少的次數,如果不能輸出"no"。

input

三個整數 : s 可樂的體積 , n 和 m是兩個杯子的容量,以"0 0 0"結束。

output

如果能平分的話請輸出最少要倒的次數,否則輸出"no"。

sample input

7 4 3

4 1 3

0 0 0 

sample output

no3 

author

seeyou

source

「2006校園文化活動月」之「校慶杯」大學生程式設計競賽暨杭州電子科技大學第四屆大學生程式設計競賽 

題意:中文題

思路:列出所有情況

感想:看了別人的好像不用搜尋比較簡單

ac**:

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

using namespace std;

#define maxn 101

bool visit[maxn][maxn];

int m,n,s,sj,si;

struct node

;void bfs()

if(p.all+p.x>m)

else

if(p.all+p.y>n)

else

if(p.x+p.y>n)

else

q.all=p.all+p.x,q.x=0,q.y=p.y,q.t=p.t+1;

if(!visit[q.x][q.y])

que.push(q),visit[q.x][q.y]=true;

if(p.x+p.y>m)

else

q.all=p.all+p.y,q.x=p.x,q.y=0,q.t=p.t+1;

if(!visit[q.x][q.y])

que.push(q),visit[q.x][q.y]=true;

}printf("no\n");

}int main()

if(m>n) swap(m,n);

bfs();

}return 0;

}

2016SDAU程式設計練習二1019

n皇后問題 problem description 在n n的方格棋盤放置了n個皇后,使得它們不相互攻擊 即任意2個皇后不允許處在同一排,同一列,也不允許處在與棋盤邊框成45角的斜線上。你的任務是,對於給定的n,求出有多少種合法的放置方法。input 共有若干行,每行乙個正整數n 10,表示棋盤和皇...

2016SDAU程式設計練習三1010

problem j problem description 有一樓梯共m級,剛開始時你在第一級,若每次只能跨上一級或二級,要走上第m級,共有多少種走法?input 輸入資料首先包含乙個整數n,表示測試例項的個數,然後是n行資料,每行包含乙個整數m 1 m 40 表示樓梯的級數。output 對於每個...

2016SDAU程式設計練習三1016

problem p problem description 在一無限大的二維平面中,我們做如下假設 1 每次只能移動一格 2 不能向後走 假設你的目的地是 向上 那麼你可以向左走,可以向右走,也可以向上走,但是不可以向下走 3 走過的格仔立即塌陷無法再走第二次 求走n步不同的方案數 2種走法只要有一...