模擬訓練 海星突擊隊

2021-08-22 12:15:09 字數 1213 閱讀 4220

傳送門

【問題描述】

海星突擊隊在一次執行任務中,有n個人在敵佔區被圍困,他們最後在乙個隱蔽地方安營紮寨,等待友軍支援。

從安全角度出發,每天晚上他們必須安排人來值班,以防敵人發現襲擊。他們的長官決定每天安排至少3人值班才能保證基本安全。但是因為晚上值班過於無聊,值班的人可能發生衝突,所以不能讓任何2個人一起值班超過3次(不一定連續3次)。

請問突擊隊最多能度過多少天,並且保證沒有任何人之間有衝突

【輸入】

乙個正整數n ,表示有n 個人

【輸出】

第一行輸出乙個整數ans ,表示最多可以安全度過ans 天。

接下來ans 行,每行若干個整數,表示這一天安排值班的人。如果有多組解,輸出任意一組即可。

【輸入樣例】

3 【輸出樣例】

3 1 2 3

1 2 3

1 2 3

對於50% 的資料,保證n<=99。

對於100% 的資料,保證3<=n<=999,且n 為奇數

本題有部分分數,安全度過的天數正確可以得60%分數

構造題。

一共有c(n,2)組,每天對三組人有影響,每組不能超過三次。感性認識,能挺c(n,2)天。

之後,就是如何構造了,很玄學。

不過可以通過隨機來發現一些規律:

先隨機出x,y,z這三個數,統計他們共同出現過的次數,如果可以,ans++;

但更玄學的是不管隨機次數多大重點內容,答案總是離正確答案少了那麼一點…….

不過沒關係,如果把那張統計次數的表打出來,你就可以一眼瞄到還可以增加的答案,進而發現規律,得出答案。

#include

#include

using namespace std;

int n;

int a[1100][1100]={};

int main()

再附帶隨機的**

#include

using namespace std;

int n,cnt=0;

int a[1100][1100]={};

int rank()

int main()

printf("%d\n----------\n",cnt);

for(int i=1;i<=n;i++)

return

0;}

演算法突擊訓練營 開學第1課 聽課總結

講師 覃超 光看不練 類似看keep,不到健身房去聯絡 尋求一次就懂 只學一遍,只練一遍 一定要動手練習 且踐行五毒神掌 科學做題 高頻題目 一天要刷3 5道題,期中10 同乙個題目,不同次提交,耗時不一樣。因為分配的伺服器不一樣。leetcode 也不是頂級程式設計師寫的,有的時候有bug,正常。...

訓練部隊 全國模擬(三)

程式設計題 訓練部隊 時間限制 1秒 空間限制 32768k 小牛牛是牛牛王國的將軍,為了訓練出精銳的部隊,他會對新兵進行訓練。部隊進入了n個新兵,每個新兵有乙個戰鬥力值和潛力值,當兩個新兵進行決鬥時,總是戰鬥力值高的獲勝。獲勝的新兵的戰鬥力值就會變成對手的潛力值 自己的戰鬥力值 對手的戰鬥力值。敗...

2015 08 省賽模擬訓練總結

說在前面 這個月我們提早回來學校訓練,這種安排早已習慣了。每到這個時候,我的收穫會是一年中最大的。這一次我做的是省賽組的題,從中我不僅學到許多,而且看出了自己的許多問題。暴露的問題 我在做比賽時的問題,可以大致歸為幾點 時間分配問題 省賽題目的難度是普遍較高的,這時合理分配時間很重要,很重要,很重要...