仍在施工...
$165 pts, Rank 18$
B 題掛了 45 分,不然可以 AC 兩道題的,嗚
題目列表:
A.abc猜想
B.簡單的排列最最佳化題
C.簡單的線性做法題
D.簡單的線段樹題
A.abc猜想
題意:
給定三個正整數 \(a,b,c\),你需要求出 \(a^b\) 除以 \(c\) 並向下取整得到的值對 \(c\) 取模的結果。
賽時分析:
大概十天之前 和 \(DrRatio\)、\(GGrun\) 玩洛谷隨機跳題做過一道類似且難度大於等於這個的題,開賽沒十秒, GGrun:做過做過這個
,於是十分鐘切了。
正解:
求 \(a^b\) 顯然快速冪,模什麼呢,模 \(c\) 的話之後再 \(\div c\) 結果顯然為 0,所以我們模 \(c^2\)。
code:
#include<bits/stdc++.h>
#define ll long long
using namespace std;
ll a, b, c;
ll qpow(ll x, ll y, ll mod){
ll ans = 1;
while(y)
{
if(y & 1) ans = ans * x % mod;
x = x * x % mod;
y >>= 1;
}
return ans;
}
signed main(){
// freopen("in.in", "r", stdin); freopen("out.out", "w", stdout);
scanf("%lld%lld%lld", &a, &b, &c);
ll ans = qpow(a, b, c * c) / c;
ans = ans % c;
printf("%lld", ans);
return 0;
}
B.簡單的排列最最佳化題
題意:
對長度為 \(n\) 的排列 \(π=(π1,π2,…,πn)\),定義它的權值 \(wt(π)=∑_{i=1}^n∣π_i−i∣\),定義它的 k-移位為新的排列 \(πk=(πn−k+1,πn−k+2,…,πn,π1,…,πn−k)\)。特別的,\(π_0=π\)。
現在給定長度為 \(n\) 的排列 \(π\),請找到一個 \(k∈[0,n−1]\),使得 \(wt(πk)\) 最小。