cqoi2015部分題解

2021-07-01 23:31:47 字數 1991 閱讀 2510

只做了前三題。。。。。

t1、選數

先把題目轉化為求選n個數最大公約數為1,不用說了。

假定f[i]為選出n個數最大公約數為i的方案數。

由於題目中有條件h-l<=10^5,所以i<=10^5即可。

令l=(l-1)/i, r=h/i

f[i] = (r-l)^n - sigma f[a*i] - (r-l)

最後的r-l為減去全部選擇乙個數的方案數

答案為f[1]

ps:如果範圍中有1,注意f[1]++,因為全部選1也是一種方案

另一種做法,可以直接用莫比烏斯反演,莫比烏斯函式求和可參見我的另一篇博文

這種做法比較卡時,popoqqq大神正是用了種做法

貼上我的**

#include #include #include using namespace std;

const int maxn=100005, mod=(1e9)+7;

int f[maxn],l,r,n,k,i,j;

int qck(int a,int b)

return ret;}

int main()

if (l==1) f[1]++;

printf("%d\n",f[1]);

return 0;

}

t2、網路吞吐量

很經典的一道網路流題了,做法可以參見ahoi2006上學路線,不講了

#include #include #include #include using namespace std;

#define pb push_back

typedef long long ll;

const int inf=1e9;

ll flow[300000],ds[505],dt[505],minx,ans;

int a[1005],js[1005],c[1005];

int node[300000],next[300000];

int n,m,x,y,z,n,i,j,vj,tot,q[1005],l,r;

bool flag,v[505];

struct edge;

vector e[505];

void dijkstra(ll d,int s)}

void add(int x,int y,ll z)

void init()

void sap(int x)

int minn = minx, e = n-1, i;

for (i=a[x];i;i=next[i])

if (flow[i]>0)

e = min(e,c[node[i]]);

} if (flag) flow[i]-=minx, flow[i^1]+=minx;

else }

int main());

e[y].pb((edge));

} dijkstra(ds,1);

dijkstra(dt,n);

for (i=1,tot=1;i<=n;i++)a[maxn],b[maxn];

bool cmp1(const arr &a,const arr &b)

ll query(int p,int q,int l,int r,int s)

return ret;}

int get2(int x)

return ret;}

int main()

sort(w+1,w+m+1);

m = unique(w+1,w+m+1)-w-1;

sort(a+1,a+m+1,cmp1);

sort(b+1,b+m+1,cmp2);

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

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

for (i=1,lastans=1;i<=n;i++)

return 0;

}

題解 CQOI2015選數

這題做的時候接連想錯了好多次 但是回到正軌上之後依然是乙個套路題。不過這題好像有比莫比烏斯反演更好的做法,莫比烏斯反演貌似是某種能過的暴力 不過能過也就行了吧哈哈。首先我們把數字的範圍要進行縮小 最大公約數為 k 那自然所有選出來的數都必須是 k 的倍數。所以我們改選數為選擇是 k 的多少倍。然後由...

CCPC2015 部分題解

hdoj5540 secrete master plan 問一張紙片旋轉後能不能和另外一張完全一樣,列舉所有情況即可。1 include 2 include 3 include 4 include 5 include 6 include 7 include 8 include 9 include 1...

CQOI2015 任務查詢系統題解

題目 萌新做的第一道主席樹非模板題,emmm說實話搞得我頭皮發麻,想了乙個下午,最後還是去看了某神犇的題解,但是並沒有看懂,似乎用了樹套樹 主席樹套樹狀陣列,複雜度o nlog2n 最後沒辦法,自己瞎搞居然搞出來乙個o nlog2n 瞬間感覺自己很厲害有木有,雖然我不會別人那些高階演算法,但至少我的...