牛客多校2018四 A

2021-08-21 21:21:46 字數 786 閱讀 7339

很顯然地發現對於某個位置的乙個1或2,它對答案的貢獻與之前進行了多少秒有關,所以趕緊打個表看一看,就發現對於某乙個1來說,它對答案的貢獻就是(t*2+2),t是之前經過的時間,對於2的情況,打出假設輸入的數列是「2」,「02」,「002」,「0002」的表,就發現答案分別是3,9,21,45,93……對這個答案數列做個差分,發現它的差分數列是等比數列,等比數列求和一下就是通項公式,就是3*(2^t-1).

但是想到這裡就不會做了,因為答案太大沒法做,並且t顯然不是取模1e9+7意義下的。

後來我才知道要用指數迴圈節降冪,所以,直接貼一發**(忘記判斷降冪公式條件了,但是還是ac了,懶得加了)。

#include

using

namespace

std;

typedef

long

long ll;

const ll mod=1e9+7;

unordered_map

mp;const

int maxn=100005;

int t;

char s[maxn];

ll phi(ll x)

}if(x>1) ret=ret-ret/x;

return ret;

}ll pow(ll a,ll b,ll c)

return ret;

}ll deal(int cur,ll wtf)

}void init()

int main()

return

0;}

2018牛客多校3

h diff prime pairs 1 3 1 5 1 7 1 11.2 3 2 5 2 7 2 11.3 3 3 5 3 7 3 11.4 3 4 5 4 7 4 11.打個素數表 用素數篩一遍 includeusing namespace std bool a 11111111 int zs ...

2018牛客多校7

有點難度啊。a minimum cost perfect matching 隊友搞的 應該不難 把二進位制寫出來看看 includeusing namespace std define ll long long int define lson rt 1,l,m define rson rt 1 1,...

2018 牛客多校 2

problem a problem b 考慮第二種優惠,每乙個物品如果原價購買了,那麼向可以免費拿的那個物品連一條邊 在樹上被指向的那個點是父親 如果不考慮環的話,考慮樹上dp。設 f i 0 表示買掉以 i 為根的子樹需要的最小花費,設 f i 0 表示買掉以 i 為根的子樹並且 i 這個點是原價...