刷題筆記 小技巧

2021-10-24 17:38:27 字數 1882 閱讀 5595

如果需要降序

bool

cmp(

int x,

int y)

// 首先定義排序規則,然後使用過載。

sort

(a, a+len, cmp)

;

對於結構體

strucr ebuf[

1000

];

重寫操作符

// 定義在結構體內

bool

operator

<

(const e&b)

const

cmp 函式

bool

cmp(e a, e b)

寫乙個陣列儲存日期天數

#define isyear(x) x%100!=0 && x%4==0 || x%400==0?1:0

int dayofmonth[13]

[2]=

;struct date}}

};int buf[

5001][

13][32

];intmain()

//之後輸入對應的兩個你那份數字,可以求他們之間的差值,也就是兩個日期之間的日子數量。

}

sort

(nums.

begin()

,nums.

end(

),greater<

int>()

);//從大到小排序

sort

(nums.

begin()

,nums.

end(

),less<

int>()

) 從小到大排序

basic_string&

insert

( size_type index,

const chart* s )

;//index位置插入乙個常量字串

basic_string&

insert

( size_type index, size_type count, chart ch )

;在index位置插入count個字元ch

有三種用法:

(1)erase

(pos,n)

;//刪除從pos開始的n個字元,比如erase(0,1)就是刪除第乙個字元

(2)erase

(position)

;//刪除position處的乙個字元(position是個string型別的迭代器)

(3)erase

(first,last)

;//刪除從first到last之間的字元(first和last都是迭代器)

注意擷取長度,可能超過int 型別大小。

可以為0,1,10,100 但不能有01,02這種出現,判斷方法:

將字串利用atoi轉化為int數字,然後在轉化為string型別,比較長度,如果長度符合字串長度合理,如果不想等說明數字並不合理。

#include

//標頭檔案要記得加const double eps = 1e-6; //一般這樣子就夠,但有時具體題目要考慮是否要更小的 if(

fabs

(a-b)

< eps)

//判斷是否相等

if(a > b+eps)

// 判斷a是否大於b,因為大的肯定大,所以即使你小的加上,還是會更大

刷題演算法小技巧

1.大數取餘 對於較大數快速取餘 引數 char s 為儲存大數的陣列 modnumber 為mod long long modnumber char s,int modnumber return sum 2.快速冪 極大數 取餘 對於較大數快速取餘 引數 a的b次方 對 c 取餘 long lon...

刷題小技巧(一)

相加演算法是我自己定義的名字,具體問題如下 假設每次迴圈返回乙個int,第一次返回1,第二次返回2,第三次返回3,最後演算法的結果是123,如何計算?這個 問題看似簡單其實有乙個問題,就是你並不知道迴圈的次數是多少,也就是說無法確定1乘以的究竟是10的幾次方,下面介紹兩種方法 方法一 用stack的...

PTA刷題技巧

作用 刷題的時有時輸入的資料量太大,格式太繁瑣,每次除錯都得自己輸入資料,除錯的20 以上的時間都放在輸入資料上面了,考試黑框框不能複製。include include include include include include include include includeusing name...