這一題是一道擴歐的模板題(幾乎不需要其他技巧)
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多分的,看來還是自己能力有欠缺啊,還是要多多向大佬學習,好好改正才是,至於解題策略,還是要力求第一題要...