題目描述
聰聰和同學們正在玩這樣乙個換座位的遊戲:班上共有2n個少先隊員,開始時每個少先隊員坐在自己的板凳上排成一隊,由聰聰開始擊鼓,每次擊鼓開始時,前n個同學坐到第2、4、…、2n個板凳上,後n個同學坐到第1、3、…、2n-1個板凳上,擊鼓結束時坐錯或者還沒有坐到對應板凳上的同學就要接受懲罰——表演乙個節目,並按規定坐好。聰聰不斷的擊鼓然後停頓後又擊鼓…,同學們都覺得這個遊戲很好玩,但是當遊戲結束時,同學們傻眼了,由於每位同學的板凳都差不多,他們找不到自己的板凳了。
而聰聰這時反應特別快,他說經過一定次數的換座位,每位同學一定能回到自己的板凳的。那麼這個次數最少是多少呢?你會計算嗎?
輸入共一行,乙個正整數n(1≤n≤10000)。
輸出共一行,乙個正整數,表示每位同學都回到自己板凳的最少換座位次數。
樣例輸入 copy
10樣例輸出 copy
6我本人是用暴力的方法解決的這道題,然後開了乙個輔助的陣列,在操作完之後將輔助陣列的值複製到原陣列,然後計數,直到換回到原來的情況
#include
#include
#include
#include
#include
#include
#include
#include
using
namespace std;
#define wuyt main
typedef
long
long ll;
#define heap(...) priority_queue<__va_args__ >
#define heap(...) priority_queue<__va_args__,vector<__va_args__ >,greater<__va_args__ > >
template
<
class
t>
inline t min
(t &x,
const t &y)
template
<
class
t>
inline t max
(t &x,
const t &y)
///#define getchar()(p1 == p2 && (p2 = (p1 = buf) + fread(buf, 1, 1 << 21, stdin), p1 == p2) ? eof : *p1++)
///char buf[(1 << 21) + 1], *p1 = buf, *p2 = buf;
ll read()
#define read read()
const ll inf =
1e15
;const
int maxn =
2e5+7;
const
int mod =
1e9+7;
#define start int wuyt()
#define end return 0
ll num[
20008];
ll num2[
20008];
ll ans;
int n;
ll a,b;
char ss[50]
;int pos;
bool
judge
(ll num)
return
true;}
void
work
(ll num[
],ll num2)
for(
int i=
1;i<=n;i++
)for
(int i=
1;i<=
2*n;i++
) num[i]
=num2[i];}
intmain()
ans=1;
int cnt=1;
for(
int i=
2*n;i>n;i--
)for
(int i=
1;i<=n;i++
)for
(int i=
1;i<=
2*n;i++
) num[i]
=num2[i]
;///for(int i=1;i<=2*n;i++) printf("%lld ",num[i]);
while
(judge
(num)==0
)for
(int i=
1;i<=n;i++
)for
(int i=
1;i<=
2*n;i++
) num[i]
=num2[i]
; ans++;}
cout
}
之前為了測試才沒將while迴圈裡面的改成呼叫函式,改為呼叫函式會更簡短 由一道試題想到的
前段時間忙著換工作,面試了幾家公司,其中有些筆試題,蠻有意思的,給我很大啟發。最好玩的一道程式設計題 不使用中間變數,交換2個int型變數a和b的值。寫出方法。這個其實不是很難,方法如下 public class exchange void swap int a int b 給我的啟發是,在程式設計...
由一道acm題目所想到
已經很長一段時間沒有ac題了,一周之前報名參加了計算客的程式設計大賽,雖然我的結果不 是特別理想,但是還是學到了一些東西。下邊,我先貼出題目和對應的程式原始碼 如下 c語言 includeint main if n 2 1 else if p n 1 p n 2 else totaltime p n...
由一道C 題所想到的
前段時間在睿思上 vivianliu出了如下一道c 題目 給定乙個類 class mycl protected virtual int geta int main 可見輸出是乙個未初始化的a。先上 吧 class myder mycl 同樣是派生乙個子類 int main 為下文修改記憶體分配策略 ...