終於 牛客的noip賽前集訓營有我會做的題目啦!
之前考的**題天天爆零……
真的不是省選集訓營???
真·純模擬,毫無坑點(以至於我一開始以為題目看錯了,,看了好幾遍……)
#include
using namespace std;
int n,m,k,km,a[
205]
[205
],x,y,t,egy=0;
205]
[205
],sign=
0,vis[
205]
[205];
inline
intread()
while
(ch>=
'0'&&ch<=
'9') x=x*
10+ch-
'0',ch=
getchar()
;return x*f;
}int
main()
if(a[x]
[y]==0)
}else k=
min(km,k+a[x]
[y])
;for
(int u=x-
1;u<=x+
1;u++
)for
(int v=y-
1;v<=y+
1;v++)if
(u>
0&&v>
0&&u<=n&&v<=m)
[v]=1;
vis[x]
[y]=1;
}if(sign)
printf
("-1 -1");
else
printf
("%d %d"
,k,egy)
;return0;
}
很簡單,列舉每個數的因數nsqrt(n)就能過。然鵝我以為過不了就寫了別的……然後掛了。
#include
using namespace std;
int n,c[
500010
],ans=1;
inline
intread()
while
(ch>=
'0'&&ch<=
'9') x=x*
10+ch-
'0',ch=
getchar()
;return x*f;
}int
main()
}}}printf
("%d"
,ans)
;return0;
}
注:這的確不是正解,正解是列舉每個數的倍數,複雜度nlogn,但我不想寫了啊啊啊啊
為了學習 (抄)大佬們的**,又去看了bitset……(我是什麼都不會嗎……大概是的吧)
以後打算整理一下stl(如果有時間的話……)
f[i][j]表示從f點出發,經過長度為2^j的路徑後所能到達的點的集合。
#include
using namespace std;
int n,m,q,x,y,l,lg;
bitset <
110> ans,s,f[
110][31
];intread()
while
(ch<=
'9'&&ch>=
'0')
return x*f;
}int
main()
} ans[y]
?printf
("yes\n"):
printf
("no\n");
}return0;
}
注:演算法還可以更優,最後兩個for迴圈形式上與矩陣相同,可以寫快速冪。(可惜我弱)
最後。
馬煒梁《植物學》看完祭√(滑稽)
2020牛客NOIP賽前集訓營 提高組(第四場)
有 f n 2 f 2 f 1 f 2 f 2 f 2 令 g n f n 2 很自然的有 g n 2g 2g g 將遞推式寫成矩陣的形式 a 令 vec n 為 g n,g g t 可以逆推出 vec 0 把 vec 表示成 a n vec 將題目中的 f s sum limits g sum l...
牛客CSP S提高組賽前集訓營2
然後隨便用乙個資料結構維護一下就行了,我寫的線段樹。我們先找出每個環,然後我們先刪連線環的邊,每刪一條就可以多產生乙個聯通塊,在考慮刪環邊,發現從最大的環刪起一定最優 因為你刪的第一條邊得不到任何新的聯通塊 就很容易想到tar jantarjan tarjan 發現你只能寫出80 8080 分,因為...
牛客CSP S提高組賽前集訓營1
比賽鏈結 官方題解 before t1觀察 結論題,t2樹形dp,可以換根或up down,t3正解妙,轉化為圖上問題。題目質量不錯,但資料太水了 一共n個石子堆,每個石子堆有ai個石子,兩人輪流對石子塗色 先手塗紅,後手塗藍 且需要保證當前回合塗的石子顏色不能和它相鄰的兩個同色,誰塗不下去誰輸。一...