訓練日誌12 (8 5)

2022-04-14 02:11:29 字數 1013 閱讀 1703

一夜回到解放前。

三道題中最水的題,$a$了十幾個,我$wa$ 0。

不得不說,實力至此。

將同行同列操作合併,歸成乙個操作,然後合併成乙個串。

這需要感性的思考一下。假設我們現在讓矩陣按列分成乙個含$m$個元素的串,同一行中的每一位都乘上了乙個相同元素,因為一行中原本元素與元素之間就是成等差數列的關係,乘上相同元素後肯定也還是等差數列的關係。每一行都是如此。

那麼我們就得到了$n$個等差數列,讓他們中的元素按列相加,得到的仍然是等差數列。這麼算下來,時間不是$o(nm)$的麼?其實,當我們暴力算出第一列的合併之後的元素,那麼就可以遞推地求出它之後的$m$個元素,原理還是等差數列,稍微想想就可以想懂了。

小弟不才。

1 #include2

#define ll long long

3#define int long long

4using

namespace

std;

5const ll maxn=1e7+3;6

const ll mod=1e9+7;7

intn,m,q;

8 ll ans,d,res,qp[2

][maxn];

9signed main()

1022

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

23 res=((res+((i-1)*m*1ll%mod+1)*1ll*qp[0][i]%mod)+mod)%mod,d=(d+qp[0][i])%mod;

24 ans=res%mod*qp[1][1]*1ll%mod;

25for (int i=2; i<=m; ++i)

26 res=(res+d)%mod, ans=(ans+res%mod*1ll*qp[1][i])%mod;

27 printf("

%lld\n

",ans);

28return0;

29 }

矩陣遊戲

ACM訓練日誌

今天的比賽我們隊倆大佬出了倆題,後來過了時間又補了f題,總的來說我覺得今天訓練不簡單,被d題整的心態有點炸,後來于衡a掉了,貪心字首和,仔細看了隊友的 還是很有啟發的,附上原題和隊友的 原題 ac include using namespace std const int maxn 4e5 10 t...

訓練日誌 2018 10 11

昨天晚上打比賽,感覺手好生,題意看了半天,才看懂,然後就是tle,這回還好一點,馬上想到了,修改的演算法,但是細節沒處理好,wa了,找了好一會才發現 的錯誤,第二題就更艱辛了,一開始就跑偏了方向,以為是乙個找規律的事關鍵是以為自己找到了規律,開始麻煩的敲 敲完了才發現,有好多錯誤情況不在規律內,無奈...

4 27訓練日誌

關於三分法的一些知識總結 三分法主要用於求解乙個函式在某個區間內的極大 極小 值點首先對於乙個凹函式y f x 我們要求它的極小值點。首先確定它的極小值點所在的區間為 l,r 計算出兩個三分點 mid l r 2 mid2 mid r 2 其實這兩個點的位置是靈活的 此時 l mid f mid2 ...