题目:这里

题意:n个城市,每个城市有个魅力值vi,首先,有n条路将这n个城市连成一个环,1号城市连2号城市,2号连3号****n号连1号城市,每条路的魅力值是其连接的两个城市

的魅力值的乘积,这n个城市其中还有k个是特殊城市,每个特殊城市和任意一条城市都有一条路连接,看题目下面的图,保证每两个城市之间最多只有一条路,问所有路的

魅力值之和是多少?

首先是连接成环的路线魅力值,很好算,然后每个特殊城市的路线,先求出所有城市的魅力值之和sum,依次求特殊城市的时候用sum减去这个特殊城市本身以及两边相邻的城市

魅力值(因为相邻两边的路已经算过了),再乘这个特殊城市本身魅力值就行,注意这样可能会有路算重复了,而题目显然每条路只能算一次,每次再减去已经出现过的特殊城市

的魅力值之和就行了,注意可能之前出现的特殊城市可能会是现在的特殊城市的左右相邻的城市之一,这样的话就不用减了,因为已经减了,标记一下就行。

 #include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
using namespace std; typedef long long ll;
const int M = 1e5 + ;
ll a[M];bool has[M]; int main()
{
int n,m;
ll sum=,ans=;
scanf("%d%d",&n,&m);
for (int i= ; i<=n ; i++)
{
scanf("%I64d",&a[i]);
if (i>) ans+=(a[i]*a[i-]);
sum+=a[i];
}
ans+=a[]*a[n];
memset(has,false,sizeof(has));
ll cas=;
while (m--)
{
int x,l,r;
scanf("%d",&x);
has[x]=true;
if (x-==) l=n;
else l=x-;
if (x+==n+) r=;
else r=x+;
ans+=(sum-a[x]-a[l]-a[r])*a[x];
ll we=cas;
if (has[l]) we-=a[l];
if (has[r]) we-=a[r];
ans-=we*a[x];
cas+=a[x];
}
printf("%I64d\n",ans);
return ;
}

Codeforces 703B (模拟) Mishka and trip的更多相关文章

  1. codeforces 703B B. Mishka and trip(数学)

    题目链接: B. Mishka and trip time limit per test 1 second memory limit per test 256 megabytes input stan ...

  2. Codeforces 703B. Mishka and trip 模拟

    B. Mishka and trip time limit per test:1 second memory limit per test:256 megabytes input:standard i ...

  3. Codeforces Round #365 (Div. 2) Mishka and trip

    Mishka and trip 题意: 有n个城市,第i个城市与第i+1个城市相连,他们边的权值等于i的美丽度*i+1的美丽度,有k个首都城市,一个首都城市与每个城市都相连,求所有边的权值. 题解: ...

  4. cf703B Mishka and trip

    B. Mishka and trip time limit per test 1 second memory limit per test 256 megabytes input  standard ...

  5. 暑假练习赛 003 F Mishka and trip

    F - Mishka and trip Sample Output   Hint In the first sample test: In Peter's first test, there's on ...

  6. CodeForces 703B Mishka and trip

    简单题. 先把环上的贡献都计算好.然后再计算每一个$capital$ $city$额外做出的贡献值. 假设$A$城市为$capital$ $city$,那么$A$城市做出的额外贡献:$A$城市左边城市 ...

  7. CodeForces 703A Mishka and trip

    Description Little Mishka is a great traveller and she visited many countries. After thinking about ...

  8. Codeforces Round #365 (Div. 2) B - Mishka and trip

    http://codeforces.com/contest/703/problem/B 题意: 每个点都有一个值,每条边的权值为这两个点相乘.1~n成环.现在有k个城市,城市与其他所有点都相连,计算出 ...

  9. CodeForces - 427B (模拟题)

    Prison Transfer Time Limit: 1000MS   Memory Limit: 262144KB   64bit IO Format: %I64d & %I64u Sub ...

随机推荐

  1. 《Unix/Linux网络日志分析与流量监控》获2015年度最受读者喜爱的IT图书奖

    <Unix/Linux网络日志分析与流量监控>获2015年度最受读者喜爱的IT图书奖.刊登在<中华读书报>( 2015年01月28日 19 版) 我的2015年新作刊登在< ...

  2. Welcome to China

    subway, railway, highway ,way way to dieofficer,announcer, professor, sir sir to lieWelcome to China

  3. C语言typedef的用法(转)

    http://www.cnblogs.com/afarmer/archive/2011/05/05/2038201.html 一.基本概念剖析 int* (*a[5])(int, char*);    ...

  4. Ubuntu 12.04搭建l2tp服务器记录。

    1. 安装openswan apt-get install openswan 2.打开 /etc/ipsec.conf 文件,做如下配置: 其中,virtual_privat这里包含的网络地址允许配置 ...

  5. 查找jsp页面报错技巧

    在报错跳转页面打印错误信息<div>系统执行发生错误,信息描述如下:</div> <div>错误状态代码是:${pageContext.errorData.stat ...

  6. MYSQL 分组排序

    http://www.cnblogs.com/merru/articles/4626045.html SELECT a.shop_id, a.price, count(*) as rankFROM m ...

  7. VC++ 6.0远程调试配置

    VC开发环境之所以提供远程调试的能力,是因为有些情况下单机调试会让你崩溃掉...比如,调试GUI程序的WM_PAINT消息,因为要单步调试,所以调试器会对界面的重绘产生副作用(Heisenberg不确 ...

  8. Delphi2010 DataSnap入门

    DataSnap到了Delphi2010有了很大的变化,已经可以完全抛弃DCOM之类的东西了,在以前版本中建立一个DataSnap,需要使用DCOMConnection或者SockConnection ...

  9. kindeditor富文本框,上传文件后,显示文件名称

    kindeditor作为一个应用广泛富文本框,我们经常会利用到它,然而在使用的过程中,发现有的地方使用起来很不方便,例如本文要说的,用户上传文件之后,默认只有文件URL,没有文件说明,如图: 点击确定 ...

  10. C# 采用事务批量插入数据

    首先要构建一个实体类,注意实体类的属性和数据的列要一一对应,否则会报错. public class Animal { public string Name { get; set; } public i ...