codeforces 703B
题意:有n座城市,其中k座是省会城市,每个城市有对应的点权,城市1-2-3-...-n-1有一条路相连,省会城市与其他所有的城市相连,且每两个城市间最多有一条路,每条路的边权为路连接的两座城市的点权乘积,问所有路的边权和。
思路:预处理出所有城市的点权和与所有省会城市的点权和,对于每座城市,如果它不是省会城市的话,它只与它的前一个城市与后一个城市以及所有的省会城市有连边,如果它是省会城市的话,它与除了自己的所有城市有连边。这样每条边在边的两个点处都考虑了一次,答案/2。
#include<cstdio> int val[100005]; int cab[100005]; typedef long long ll; int main() {int n,k,x;ll city_sum=0,cab_sum=0;scanf("%d%d",&n,&k);for(int i=1;i<=n;i++) {scanf("%d",&val[i]);city_sum+=val[i];}for(int i=1;i<=k;i++) {scanf("%d",&x);cab[x]=1;cab_sum+=val[x];}ll res=0;for(int i=1;i<=n;i++) {if(cab[i]) {res+=(city_sum-val[i])*val[i];}else {ll temp=cab_sum;if(i==1) {if(!cab[n]) temp+=val[n];if(!cab[2]) temp+=val[2];}else if(i==n) {if(!cab[n-1]) temp+=val[n-1];if(!cab[1]) temp+=val[1];}else {if(!cab[i-1]) temp+=val[i-1];if(!cab[i+1])temp+=val[i+1];}res+=temp*val[i];}}printf("%I64d\n",res/2);return 0; }
转载于:https://www.cnblogs.com/LinesYao/p/5742962.html
codeforces 703B相关推荐
- 把数据保存到cook_将用户信息保存到Cookie中
/** * 把用户保存到Cookie * * @param request * @param response * @param member */ private void rememberPwdA ...
- codeforces703B
Mishka and trip CodeForces - 703B 小米什卡是一个伟大的旅行者,她访问了许多国家.在这次考虑去哪里旅行之后,她选择了XXX--这个美丽,但鲜为人知的北方国家. 以下是关 ...
- 安卓仿苹果音量调节_android自定义view仿照MIUI中音量控制效果
先看效果图: 这就是miui中的音量效果图,实现思路是自定义视图,绘制圆环,然后设置进度显示. 核心代码在onDraw中实现如下: @Override protected void onDraw(Ca ...
- CodeForces 375D Tree and Queries
传送门:https://codeforces.com/problemset/problem/375/D 题意: 给你一颗有根树,树上每个节点都有其对应的颜色,有m次询问,每次问你以点v为父节点的子树内 ...
- 「日常训练」Bad Luck Island(Codeforces Round 301 Div.2 D)
题意与分析(CodeForces 540D) 是一道概率dp题. 不过我没把它当dp做... 我就是凭着概率的直觉写的,还好这题不算难. 这题的重点在于考虑概率:他们喜相逢的概率是多少?考虑超几何分布 ...
- 【codeforces 812C】Sagheer and Nubian Market
[题目链接]:http://codeforces.com/contest/812/problem/C [题意] 给你n个物品; 你可以选购k个物品;则 每个物品有一个基础价值; 然后还有一个附加价值; ...
- CodeForces 获得数据
针对程序的输出可以看见 CodeForces :当输入.输出超过一定字符,会隐藏内容 所以:分若干个程序进行输入数据的获取 1. 1 for (i=1;i<=q;i++) 2 { 3 scanf ...
- codeforces水题100道 第二十七题 Codeforces Round #172 (Div. 2) A. Word Capitalization (strings)...
题目链接:http://www.codeforces.com/problemset/problem/281/A 题意:将一个英文字母的首字母变成大写,然后输出. C++代码: #include < ...
- CodeForces 595A
题目链接: http://codeforces.com/problemset/problem/595/A 题意: 一栋楼,有n层,每层有m户,每户有2个窗户,问这栋楼还有多少户没有睡觉(只要一个窗户灯 ...
最新文章
- C#连接Oracle数据库的方法(Oracle.DataAccess.Client也叫ODP.net)
- windows 8 突然不能上网 LSP 二种修复方法
- [JS] 动态修改ckPlayer播放器宽度
- ftp、sftp、vsftp、ssh、vsftpd、sshd
- Centos 7 查看内存占用情况相关命令
- Orchard之生成新模板
- SpringCloud Ribbon(四)之全局配置与服务配置
- IA-32 Architecture: the function of segment regitster(CS DS SS ES)
- leetcode 1018. 可被 5 整除的二进制前缀
- java web js_JAVA Web JS
- Source Insight 快捷键大全
- c# 小票打印机打条形码_C# Code 128条形码打印的问题
- Django 个人博客网站+simpleui后台
- 【5G之道】第二十三章:5G无线接入
- 护眼仪眼部按摩器单芯片蓝牙方案开发说明
- Mega2560串口通信实现
- 0035:虫子吃苹果(C++)
- Python学习笔记:2.2.3 习题课06
- 利用声音传感器控制led灯功能_云中树莓派(4):利用声音传感器控制Led灯
- 第四套人民币荧光“四大天王”收藏价值分析