/* 題目描述
牛牛和羊羊都很喜歡青草。今天他們決定玩青草遊戲。
最初有乙個裝有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...