七 八點刷題2道 02

2021-09-12 08:35:29 字數 1819 閱讀 6138

/* 題目描述

牛牛和羊羊都很喜歡青草。今天他們決定玩青草遊戲。

最初有乙個裝有n份青草的箱子,牛牛和羊羊依次進行,牛牛先開始。在每個回合中,每個玩家必須吃一些箱子中的青草,所吃的青草份數必須是4的x次冪,比如1,4,16,64等等。不能在箱子中吃到有效份數青草的玩家落敗。假定牛牛和羊羊都是按照最佳方法進行遊戲,請輸出勝利者的名字。

輸入描述:

輸入包括t+1行。

第一行包括乙個整數t(1 ≤ t ≤ 100),表示情況數.

接下來t行每行乙個n(1 ≤ n ≤ 10^9),表示青草份數

輸出描述:

對於每乙個n,如果牛牛勝利輸出"niu",如果羊羊勝利輸出"yang"。

示例1輸入複製3

123輸出

複製niu

yang

niu */

#include

using

namespace std;

intmain()

}

/* 題目描述

小q在學習許多排序演算法之後靈機一動決定自己發明一種排序演算法,小q希望能將n個不同的數排序為公升序。小q發明的排序演算法在每輪允許兩種操作:

1、 將當前序列中前n-1個數排為公升序

2、 將當前序列中後n-1個數排為公升序

小q可以任意次使用上述兩種操作,小q現在想考考你最少需要幾次上述操作可以讓序列變為公升序。

輸入描述:

輸入包括兩行,第一行包括乙個正整數n(3≤n≤10^5),表示數字的個數

第二行包括n個正整數ai,即需要排序的數字,保證數字各不相同。

輸出描述:

輸出乙個正整數,表示最少需要的操作次數

示例1輸入複製6

4 3 1 6 2 5

輸出複製2說明

這題絕壁在逗我

*/amin: 序列中的最小值

* amax: 序列中的最大值

* * 分三種情況:

* (1)amin和amax都在正確位置,即 amin==a[0] && amax==a[n]

* (2)amin和amax都不在正確位置,即 amin!=a[0] && amax!=a[n]

* (3)amin和amax只有乙個在正確位置,即 amin==a[0] || amax==a[n]

* * res: 使整個序列變為公升序所需要的最少操作次數

* 對於第一種情況:如果原序列已是公升序,則res=0,否則res=1

* 對於第二種情況:res=2

* 對於第三種情況:res=1

* */

#include

using

namespace std;

intmain()

// cout << tag << ": " << min << ":" << max << endl;if(

!tag)

//已經公升序了

cout <<

"0"<< endl;

else

if(vv[0]

== min && vv[vv.

size()

-1]== max)

//兩個都在正確位置

cout <<

"1"<< endl;

else

if(vv[0]

== min || vv[vv.

size()

-1]== max)

//只有乙個在正確位置

cout <<

"1"<< endl;

else

//兩個都不在正確位置

cout <<

"2"<< endl;

}

刷題35 力扣2道題 牛客1道題

輸入乙個正整數 target 輸出所有和為 target 的連續正整數序列 至少含有兩個數 序列內的數字由小到大排列,不同序列按照首個數字從小到大排列。輸入 target 9 輸出 2,3,4 4,5 輸入 target 15 輸出 1,2,3,4,5 4,5,6 7,8 限制 1 target 1...

leetcode刷題筆記02

如2 ab2 c abccabcc,3 a2 b abbabbabb 看到這種題型第一反應是剛開始演算法學習的時候,括號匹配問題,第二反應是遞迴。對於棧的解決方法如下 class solution else if character.isletter cur cur else collections...

牛客網刷題 02

1.splice 從陣列中新增 刪除專案 arr.splice 2,0,william splice 方法向 從陣列中新增 刪除專案,然後返回被刪除的專案。注釋 該方法會改變原始陣列。2.slice 可從已有的陣列中返回選定的元素 var newarr arr.slice 0 slice start...