柚子快報激活碼778899分享:藍橋杯騙分小技巧
柚子快報激活碼778899分享:藍橋杯騙分小技巧
寫在前面
由于本人第一次參加的是cpp組,第二次參加的python組,所以一些技巧都是關于cpp和python的
先上圣經(jīng)
貪心騙樣例,暴力出奇跡。 暴搜掛著機,打表出省一。
數(shù)學先打表,DP看運氣。窮舉TLE,打表UKE。
模擬MLE,貪心還CE。想要騙到分,就要有辦法。
圖論背模板,數(shù)論背公式。動規(guī)背方程,高精背代碼。
如果都沒背,干脆輸樣例!
模擬只會猜題意,貪心只能過樣例。
數(shù)學上來先打表,規(guī)律一般是 D P。
組合數(shù)學碰運氣,計算幾何瞎暴力。
圖論一頓套模板,數(shù)論只會 G C D。
七八個測試點,兩三次CE前,舊時題解花樣變,聽取WA聲一片......
AC=Answer Coarse=粗劣的答案 WA=Wonderful Answer=完美的答案 TLE=Time Limit Enough=時間充裕 MLE=Memory Limit Enough=內(nèi)存充裕 CE=Compile Easily=輕松通過編譯 RE=Run Easily=輕松通過運行
進入正題
cpp
萬能頭文件
#include
這個頭文件包含所有的頭文件,優(yōu)缺點如下: 優(yōu)點:
避免忘記函數(shù)頭文件的名字簡化頭文件的書寫,只用寫一行就可以解決所有的書寫,懶人必備
缺點:
編譯時間較長,但是好在測評不會計入編譯時間
設置c++11
踩坑經(jīng)歷:第一次參加藍橋杯的時候院校老師沒設置c++11標準,導致一些函數(shù)都用不了(如map,auto等) 設置方式: 工具—>編譯選項---->勾選"編譯時加入以下命令"---->輸入命令-std=c++11
python一些包的設置
import sys sys.setrecursionlimit(100000) 設置python的最大遞歸次數(shù)(由于cpp寫習慣了,一些算法題喜歡用遞歸,但是總是暴棧),找了一些方法之后才知道這個庫函數(shù)的
踩坑樣例: 限制遞歸次數(shù)之后
import sys input = lambda: sys.stdin.readline().strip() 功能:加速讀入 踩坑樣例 加了之后
實戰(zhàn)騙分小技巧
樣例1:(第十四屆b組cpp填空題) 如果這題用cpp寫的話,可能很難寫(反正我打了好一會暴力還是沒打出來,最后還是手算的,雖然還是算錯了) 但是如果知道python的日期類型的話可能就比較好寫(如果學校的電腦上沒有pycharm就當我沒說) python的code如下:
from datetime import datetime, timedelta
st = '''5 6 8 6 9 1 6 1 2 4 9 1 9 8 2 3 6 4 7 7 5 9 5 0 3 8 7 5 8 1 5 8 6 1 8 3 0 3 7 9 2
7 0 5 8 8 5 7 0 9 9 1 9 4 4 6 8 6 3 3 8 5 1 6 3 4 6 7 0 7 8 2 7 6 8 9 5 6 5 6 1 4 0 1
0 0 9 4 8 0 9 1 2 8 5 0 2 5 3 3
'''
st = list(st.split())
dt1 = datetime(2023, 1, 1)#默認是2023-01-01 00:00:00
dt2 = datetime(2023, 12, 31)
res = 0
while dt2 >= dt1:
date = dt1.strftime('%Y%m%d')#格式化成20230101這種格式
num = 0
for i in range(len(st)):
if num == 8:#如果找到8位數(shù)字與當前日期相等res+1
res += 1
break
if date[num] == st[i]:#枚舉每一個數(shù)字找到相等的
num += 1
dt1 += timedelta(days=1)#日期加1
print(res)
cpp的code:
#include
using namespace std;
int main()
{
int month,day,i,j,sum=0;
int a[100]={5,6,8,6,9,1,6,1,2,4,9,1,9,8,2,3,6,4,7,7,5,9,5,0,3,8,7,5,8,1,5,8,6,1,8,3,0,3,7,9,2,
7,0,5,8,8,5,7,0,9,9,1,9,4,4,6,8,6,3,3,8,5,1,6,3,4,6,7,0,7,8,2,7,6,8,9,5,6,5,6,1,4,
0,1,0,0,9,4,8,0,9,1,2,8,5,0,2,5,3,3};
for(month=1;month<=12;month++)
{
if(month==2)
day=28;
else if(month==1||month==3||month==5||month==7||month==8||month==10||month==12)
day=31;
else
day=30;
for(int d=1;d<=day;d++)
{
j=0;
int b[8]={2,0,2,3,month/10,month%10,d/10,d%10};
for(i=0;i<100;i++)
{
if(a[i]==b[j])
j++;
if(j==8)
{
sum++;
break;
}
}
}
}
cout< return 0; } 因為這題是填空題,所以用什么語言都可以,最后只需要運行出來一個結果就行 樣例2:(第十四屆b組cpp大題) 這個需要一點思維,如果實在思維過不去,可以試著打暴力,code如下: #include #include #include using namespace std; const int N = 1e4+10; int a,b,r; pair #define x first #define y second int n; int check(int r) { for(;r>0;--r) for(int i=0;i if(p[i].x/r!=p[i].y) return r; return 0; } int main() { cin>>n; int r=1e9+10; for (int i = 0; i < n; i ++ ) { cin>>p[i].x>>p[i].y; r=min(r,p[i].x/p[i].y); } int l=check(r)+1; cout< return 0; } 這個暴力大約能拿60%的分數(shù)(這就是我比賽寫的) ac code 參考這篇 樣例3:(第十四屆b組cpp大題) 看到這個我人是懵逼的,連題目都看不懂,但是不寫又沒事干,這時候又把題目給看了一下,30%數(shù)據(jù)范圍是 N ≤ 2 N\leq2 N≤2,說明測試樣例中肯定是有30%的分可以枚舉的,直接判斷,當N==1的時候肯定是輸出yes的,當N==2時只需要把所有的方案給枚舉出來就行了,30%的分數(shù)到手,剩下的更高的,如果沒事干可以用if else枚舉出來。 ac code 參考這個 樣例4:(第九屆b組cpp) 這題可以用手算,也可以寫代碼算,但是聰明的彥祖和亦菲都選擇打開excel,一個表格一拉,優(yōu)雅而又準確(excel是26進制的) 樣例5(第九屆b組cpp) 直接面向excel編程: 樣例6 這題如果不會寫,直接輸出Draw/Red/Blue,理論上來說將會獲得30%的分數(shù),如果運氣說不定能獲得40%的分數(shù),騙就完了。 樣例7: 如果這題稍微修改一下,修改成輸入一個數(shù)字n,輸入第n個素數(shù),各位彥祖和亦菲又該如何應對呢? 正經(jīng)人打暴力,聰明人選擇線性篩,聰明的彥祖與亦菲選擇打表,也就是直接先枚舉前二十萬個素數(shù),然后復制粘貼進數(shù)組里面并定義一個arr,接下來只需要輸入n,輸出arr[n]即可,這就是打表法 樣例8 無解法 如果題目中有若xxx則輸出-1 不用猶豫,直接cout<<-1< 柚子快報激活碼778899分享:藍橋杯騙分小技巧 相關閱讀
本文內(nèi)容根據(jù)網(wǎng)絡資料整理,出于傳遞更多信息之目的,不代表金鑰匙跨境贊同其觀點和立場。
轉載請注明,如有侵權,聯(lián)系刪除。