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 ...