8 8日聯賽解題報告(前兩題)

2021-08-05 21:20:10 字數 843 閱讀 5804

這一題是一道擴歐的模板題(幾乎不需要其他技巧)

ax=1(mode b)

即ax+by=1的解方程,但是由於較久沒有接觸數論,忘得差不多了,於是選擇了暴力的方法,只得了60

注意一點,因為x不止乙個值,也不止正值,所以需要在輸出時進行乙個小小的處理

這一題似乎不止一種解法,組裡面有幾位大佬用了線段樹,本人是蒟蒻所以不記得寫了(由此可見我數論圖論學的有多不牢)

後面接受了一種解法---二分,因為接教室遵循先來後到的原則,所以如果第k個人可以,那麼第k-1個人也一定可以,所以可以進行二分,先二分k值,裡面再兩重迴圈求值比較,但是如果不進行優化依舊會**,所以可以進行預處理,用字首和來優化,for 1~k,定義乙個陣列存值,將起點處加上值,結尾+1處減去該值(每次二分後陣列都要清零),這樣求和時只需要一重迴圈走一遍即可,大大減少了時間複雜度(似乎說的複雜了,還是碼個**吧)

#include

#include

#include

using namespace std;

int n,m;

long long day[1000005],z[1000005],q[1000005],zh[1000005],tar[1000005];

int shu[100];

int main()

int l=0,r=m+1;

while(r-l>1)  

for(int i=1;i<=n;i++)

}if(flag)l=k;

else r=k;

}if(l==m)

cout<<"0";

else{

cout<<"-1"<

(**醜是一直以來的痛處。。。)

10月31日解題報告

這次考試多多少少還是表現了自己在一些能力的缺失,還是太容易不審清楚題目就放開去做了,這一點不好,比如今天第一題與第三題,第一題真的水,但是自己卻因為水而想的過於簡單,直接就爆0了,血的教訓,第三題是因為自己沒有合理地估計答案範圍,貪心出來了,但是卻少開了long long 導致直接只有40分,改為l...

11月03日解題報告

今天的考試應該還算在狀態的吧,第一題雖然在lemon上面只有30分,但是在洛谷上是a掉了,emmm 雖然是這樣但還是要注意不要開太大才是,畢竟不怕一萬就怕萬一嘛 還是要注意一下就是 題面 從前有一棵樹,確定乙個根節點,最大化所有點深度之和 輸入 第一行n 接下來n 1 行表示樹的每條邊 輸出 乙個整...

11月04日解題報告

今天考試情況不好,策略上還存在問題,記憶體定義的問題又出現了,看來還是不能放鬆啊,第一題沒有開long long 直接從80掉到20,第二題超記憶體本來可以搞到的35分直接爆0,啊 本來可以有100多分的,看來還是自己能力有欠缺啊,還是要多多向大佬學習,好好改正才是,至於解題策略,還是要力求第一題要...