浙江省省賽 Now Loading

2021-08-19 18:22:15 字數 711 閱讀 9226

根據題意可以得出分母的範圍為:1-30,對於每個a[j]是p^i到p^(i+1)範圍內分母都為i+1,對於每個pi最多可以把a[i]數列分為30組,所以列舉每個pi在a[i]中進行二分查詢。然後用字首和處理下a[i]/j。

#include

using namespace std;

typedef long long int ll;

const int n=500005+10;

const int mod=1e9;

#define mem(a,b) memset(a,b,sizeof(a))

int a[n],p[n];

int flag[n],dp[33][n];

void init(int n)

}}int main()

sort(a+1,a+1+n);

init(n);

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

ll tmp=1,cnt;

ll sum=0,ans;

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

if(flag[cnt]for(int j=1;j<=cnt;j++)

sum=(sum+ans*i)%mod;

}printf("%lld\n",(sum+mod)%mod);

}return

0;}

2020浙江省省賽 B

傳送門 輸入n,k分別表示n個a i 體積物品,箱子最大容量為k,求第一種操作和第二種操作需要多少個箱子。有兩種操作,第一種操作是從1 i 1之間有沒有可以放下第i個物體體積的箱子,箱子編號越前面越好 第二種操作1 i 1之間有沒有可以放下第i個物體體積的箱子,使得箱子數最少。第二種操作很好想直接l...

2018浙江省省賽 ZOJ4024 4036

4024 題意找到這裡面是否有乙個數k,在k前面都是遞增,後面都是遞減 思路遍歷 判斷 找乙個k位置,這個位置前都是遞增,這個位置後都是遞減 for in range int input n int input an list map int input split ai an 0 f 2for i...

2015浙江省賽

zoj 3872 beauty of array 對於每個數,計算這個數被累加的次數。找到這個數左邊這個數出現的地方,在這之間的所有數的數量 這個數後面的數的數量,即為這個數被計算的次數 include include typedef long long ll int a 1000005 post ...