传送门 又一道点分治. 直接维护子树内到根的所有路径长度,然后排序+双指针统计答案. 代码如下: #include<bits/stdc++.h> #define N 40005 using namespace std; inline int read(){ int ans=0; char ch=getchar(); while(!isdigit(ch))ch=getchar(); while(isdigit(ch))ans=(ans<<3)+(ans<<1)+(ch^4…
传送门 题意:给你x个a,y个b,z个c,显然这些字符可以拼成若干字符串,然后求这些字符串中最小表示法表示出来的最大的那一个. 解法:贪心思想,用multiset维护现在拼成的字串,每次取一个最小的和一个最大的拼在一起,最后剩下的就是答案. 代码如下: #include<bits/stdc++.h> using namespace std; int a,b,c; multiset<string>s; int main(){ scanf("%d%d%d",&…
其实题不难,不知提交了几次...不能代码MD...注意一些基本问题...SB概率题 #include <iostream> #include <cstdio> #include <cstring> #define N 1001 using namespace std; double f[N][N]; int n,m,cnt,a,b; *N+]; int head[N],ds[N],q[N],dis[N][N],p[N][N]; inline int read() { ,…