不申请域名可以 做网站吗,网站制作价格推 荐,哈尔滨自助建站软件,网络营销主要做些什么题意#xff1a;有n座城市#xff0c;其中k座是省会城市#xff0c;每个城市有对应的点权#xff0c;城市1-2-3-...-n-1有一条路相连#xff0c;省会城市与其他所有的城市相连#xff0c;且每两个城市间最多有一条路#xff0c;每条路的边权为路连接的两座城市的点权乘积…题意有n座城市其中k座是省会城市每个城市有对应的点权城市1-2-3-...-n-1有一条路相连省会城市与其他所有的城市相连且每两个城市间最多有一条路每条路的边权为路连接的两座城市的点权乘积问所有路的边权和。 思路预处理出所有城市的点权和与所有省会城市的点权和对于每座城市如果它不是省会城市的话它只与它的前一个城市与后一个城市以及所有的省会城市有连边如果它是省会城市的话它与除了自己的所有城市有连边。这样每条边在边的两个点处都考虑了一次答案/2。 #includecstdio
int val[100005];
int cab[100005];
typedef long long ll;
int main() {int n,k,x;ll city_sum0,cab_sum0;scanf(%d%d,n,k);for(int i1;in;i) {scanf(%d,val[i]);city_sumval[i];}for(int i1;ik;i) {scanf(%d,x);cab[x]1;cab_sumval[x];}ll res0;for(int i1;in;i) {if(cab[i]) {res(city_sum-val[i])*val[i];}else {ll tempcab_sum;if(i1) {if(!cab[n]) tempval[n];if(!cab[2]) tempval[2];}else if(in) {if(!cab[n-1]) tempval[n-1];if(!cab[1]) tempval[1];}else {if(!cab[i-1]) tempval[i-1];if(!cab[i1])tempval[i1];}restemp*val[i];}}printf(%I64d\n,res/2);return 0;
} 转载于:https://www.cnblogs.com/LinesYao/p/5742962.html