CodeForces 703B Mishka and trip
2016-08-15 14:29
405 查看
http://codeforces.com/problemset/problem/703/B
#include<stdio.h> #include<string> #include<cstring> #include<queue> #include<algorithm> #include<functional> #include<vector> #include<iomanip> #include<math.h> #include<iostream> #include<sstream> #include<stack> #include<set> #include<bitset> using namespace std; const int MAX=100005; typedef long long ll; int n,k,C[MAX],used[MAX],K,cnt; int main() { while (scanf("%d%d",&n,&k)!=EOF) { cnt=1; ll sum=0; memset(used,0,sizeof(used)); for (int i=1; i<=n; i++) { scanf("%d",&C[i]); sum+=C[i]; } ll Ans=0; for (int i=1; i<n; i++) Ans+=C[i]*C[i+1]; Ans+=C[1]*C ; for (int i=1; i<=k; i++) { scanf("%d",&K); if (K==1) { Ans+=C[K]*(sum-C[K]-C -C[K+1]); if(used ) Ans+=C[K]*C ; if(used[K+1]) Ans+=C[K]*C[K+1]; } else if (K==n) { Ans+=C[K]*(sum-C[K]-C[K-1]-C[1]); if(used[K-1]) Ans+=C[K]*C[K-1]; if(used[1]) Ans+=C[K]*C[1]; } else { Ans+=C[K]*(sum-C[K]-C[K-1]-C[K+1]); if(used[K-1]) Ans+=C[K]*C[K-1]; if(used[K+1]) Ans+=C[K]*C[K+1]; } used[K]=true; sum-=C[K]; } cout<<Ans<<endl; } return 0; }
相关文章推荐
- 【打CF,学算法——二星级】Codeforces 703B Mishka and trip (统计)
- CodeForces 703B Mishka and trip
- codeforces 703B Mishka and trip
- CodeForces 703B Mishka and trip【水题】
- (模拟+数学)codeforces - 703B Mishka and trip
- Codeforces-703B Mishka and trip
- CodeForces 703B Mishka and trip(图论)
- CodeForces 703B Mishka and trip(城市省会修路,待AC)
- CodeForces 703B Mishka and trip
- codeforces - 703B - Mishka and trip(数学)
- codeforces 703B B. Mishka and trip(数学)
- cf703B Mishka and trip
- codeforces B. Mishka and trip
- Codeforces Round #365 (Div. 2) 703B Mishka and trip 水题
- Mishka and trip(CF 703B)
- Codeforces Round #365 (Div. 2) Mishka and trip
- Mishka and trip 道路权值和
- Codeforces 766E Mahmoud and a xor trip [二进制,]【数学+思维】
- codeforces 811C Vladik and Memorable Trip
- Codeforces Round #365 (Div. 2) -- B. Mishka and trip (找规律枚举)