西南科技大學21屆新生同步賽 更新中

2021-10-22 17:28:38 字數 2557 閱讀 3402

注意:公式推導n方的前n項和:n(n+1)(2n+1) / 6

除法的取餘::逆元

mod必須是乙個素數

#include

using

namespace std;

typedef

long

long ll;

ll ans =0;

const ll mod =

998244353

;ll fast

(ll a,ll b)

return res;

}int

main()

return0;

}

我用的是樹狀陣列維護孿生質數的個數,快速冪求解。注意底數可能超過1e9,因為n取最大時,n*(n+1)等於1e14,快速冪需要修改一點點,我就是這點一直卡著,快速冪底數要再取一次模。

#include

using

namespace std;

typedef

long

long ll;

const ll n =

1e7;

const ll mod =

1e9+7;

const

int maxn =

1e7+5;

int primes[maxn]

;ll sh[maxn]

,tr[maxn]

;void

get_prime

(ll n)}}

ll fast

(ll a,ll b)

return res;

}ll mul

(ll a,ll b)

return res;

}void

update

(ll a,ll b)

ll query

(ll x)

intmain()

while

(_--

)return0;

}

思維題

交點分為兩類:

第一類為兩個相鄰圓之間的交點

個數為2(a(b+1)+b(a+1))

因為兩個圓之間有兩個交點,橫排有,豎排也有這種形式

第二類可以發現為圓心

總個數為(a+1)(b+1)

因為蛋糕是一層一層的,所以只要找到座標距離邊界最短的距離即可,最後在乘k就行了

只要找到最近距離就行了。

#include

using

namespace std;

typedef

long

long ll;

ll x,y,n,q,k;

ll ans;

intmain()

return0;

}

經典的區間貪心:求最大重合區間的長度。(必須要會)

將每個區間進行排序,排序規則為:按x從小到大排序,x相等時,y小的在前。

思路:初始化td儲存前乙個選中的編號,cure儲存前乙個選中的區間末尾的y。

從第2個區間開始如果重合區間長度更新,就更新結果id1和id2,ans

如果當前的y座標大於前乙個的末尾座標,就要更新cure和td,td為當前的編號(因為到下一次迴圈時,td就變成前乙個選中的編號了),結尾座標也更新為當前的末尾座標。

#include

using

namespace std;

typedef

long

long ll;

const

int maxn =

1e5+5;

pair

>p[maxn]

;//存編號和區間的x和y

bool

cmp(pair

>a,pair

>b)

void

solve()

sort

(p+1

,p+1

+n,cmp)

;// cout

.first,id2=p[2]

.first,cure=p[1]

.second.second;

ll ans =

0,cur =

0,td=p[1]

.first;

// cout

(int i=

2;i<=n;i++)}

if(p[i]

.second.second>=cure)

} cout<

" "<

" "<

'\n';}

intmain()

西南科技大學OJ題 迴圈佇列0965

迴圈佇列 根據給定的空間構造順序迴圈佇列,規定隊滿處理方法為少用乙個元素空間。例如,給定5個元素空間構造迴圈佇列,則只能存放4個元素。試根據入隊及出隊操作判斷佇列最後的元素存放情況,並輸出最後佇列中的元素值,即完成給定入隊及出列操作後一次性全部出隊的元素值。要求採用順序佇列完成,少用乙個儲存空間的方...

西南科技大學OJ題 逆置單鏈表0957

逆置單鏈表 建立長度為n的單鏈表,然後將其資料元素逆置,即第1個元素變為最後乙個元素,第2個元素變為倒數第2個元素,以此類推,最後乙個元素變為第1個元素。處理的資料型別為字元型。必須使用鍊錶完成。輸入第一行為鍊錶長度n 第二行為鍊錶中的n個資料元素的值。輸出 逆置後的原始的值。樣例輸入 10 abc...

西南科技大學OJ題 哈夫曼解碼0986

哈夫曼解碼 1000 ms 10000 kb 1974 4142 通常要求根據給定的編碼本對密文進行解碼。現已給定相應字元的哈夫曼編碼,要求根據編碼對密文進行解碼。建立哈夫曼樹以及編碼 主函式等都已經給出,你只需要填寫解碼函式void ccode haffnode hafftree,int n 即可...