UPC 換座位(一道沒想到暴力就能過的題)

2022-05-02 18:45:11 字數 2459 閱讀 2544

題目描述

聰聰和同學們正在玩這樣乙個換座位的遊戲:班上共有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 為下文修改記憶體分配策略 ...