2013 多校聯合5

2021-06-17 19:47:14 字數 1562 閱讀 4241

1005:

若沒有邊權,則對點權從大到小排序即可。。

考慮邊,將邊權拆成兩半加到它所關聯的兩個點的點權中即可。

。。因為當兩個人分別選擇不同的點時,這一權值將互相抵消。

智商是硬傷啊

#include#include#include#includeusing namespace std;

double w[100001];

int main()

double s;

s=0;

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

for(i=n;i>=1;i-=2)

printf("%.0lf\n",s);

}return 0;

}

1006:

陣列sum[i]:代表第i個數和其之前的數的和對m取餘。

若sum[i]=sum[j],那麼i和j之間的數肯定滿足是m的倍數,則就可以去掉,問題轉化成找最大的(j-i)使得sum[j]=sum[i];

在讀入資料的時候對sum[i]=x進行標記,若之前標記過sum[j]=x,那麼計算差值(j-i),取最大值。

#include#include#include#includeusing namespace std;

#define maxn 100005

#define ll __int64

ll vis[maxn*2];

int main()

}getchar();

gets(str);

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

p[0]=1;

double cp;

for(t=1;t<=20;t++)

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

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

else if(fu[i]==2)

else if(fu[i]==3)}}

double ans;

ans=0.0;

for(t=1;t<=20;t++)

printf("case %d:\n%.6lf\n",cas++,ans);

}return 0;

}

1009:

給你乙個數n,問你n能分成多少種數相加。

比如3=1+1+1,3=1+2,3=3

f[3]=3;

參見五邊形定理.

}*****==持續更新*****==

多校聯合(4)

感覺這次數學題挺多的,這次的資料應該不能說水了,有的卡的確實挺厲害,但覺得有的題還是很無語,比如說那個trouble,二分感覺不超的,就是過不了,不是wa,就是tle,還會mle,乙個簡單的hash就可以過。是不是太卡演算法了。題目 這道題真沒什麼好說的 view code 1 include 2 ...

2023年多校聯合第一場

c題 數論題目,討論n和k的大小關係,很明顯n k時輸出1,n k 1時是2,nk時推出公式2 n k n k 1 2 n k 2 然後通過整數快速冪就可以了 對於1 k n,我們可以等效為n個點排成一列,並取出其中的連續k個點。下面分兩種 情況考慮 第一種情況,被選出的不包含端點,那麼有 n k ...

多校聯合訓練4 5773

解題方法 0可以轉化成任意整數,包括負數,顯然求lis時盡量把0都放進去必定是正確的。因此我們可以把0拿出來,對剩下的做o nlogn 的lis,統計結果的時候再算上0的數量。為了保證嚴格遞增,我們可以將每個權值s i 減去i前面0的個數,再做lis,就能保證結果是嚴格遞增的。ac include ...