Codeforces Round #365 (Div. 2)
来源:互联网 发布:如何提高情商 知乎 编辑:程序博客网 时间:2024/05/18 02:29
第一题:水的不能再水了,小学生都会。。。
第二题:给你n个城市,k个省市,每个城市和它序号相邻的城市相连,例如当n==3时,1-2-3-1,当城市为省市时,省市会和其他的城市都有一条边直接相连,求所有城市的边的权重和。
4 12 3 1 23
17
5 23 5 2 2 41 4
71
This image describes first sample case:
It is easy to see that summary price is equal to 17.
This image describes second sample case:
一开始用O(N^2),TLE,一直想不出怎么降时间复杂度,总觉得至少都要算n*k次的啊(秀智商了),看题解,尼玛,有规律的(小学生都会),
先预处理总和ans,每一条边和其他边相连的权重和为S=(ans-a[i])*a[i],如果有多个省市,那么需要减去这些省市之间的重复计算,
S=(ans-res)*a[i]; res计算已经就算过的省市权重和
当然最后还要遍历一遍相邻城市之间的权重是否计算了,我是用F[N][2]来计算每个节点相邻节点是否计算,同样也可以用一维来记录;
唉,反正这题真的是秀智商了,渣渣渣~~~
--------------------------------------------------------------------------------------------------------
敲代码中一些问题:
1.刚开始由于LL,int混用,导致到大数据就会出错,虽然不知道为什么,但是以后记住不要LL,int 混用
2.忘记自己F数组只是开到【2】,然而一直写的都是记录两个节点,唉,调试了好久,后来才发现,,改为前节点记录为f[i][0],后节点记录为f[i][1]
----------------------------------------------------------------------------------------------------------
一道大水题弄了一早上,羞耻~~~
#include <iostream>#include <cassert>#include <algorithm>#include <vector>#include <cstring>#include <iterator>using namespace std;typedef long long ll;#define N 100100int n,k;ll sum,ans,res;int b[N],a[N];bool f[N][2];//bool f[N][N];int main() {#ifndef ONLINE_JUDGEfreopen("in.txt","r",stdin);#endifwhile(~scanf("%d%d",&n,&k)) {memset(f,0,sizeof(f));int x;sum=0;ans=0;res=0;for(int i=0; i<n; i++) scanf("%d",&a[i]);for(int i=0; i<n; i++) {ans+=a[i];//f[i][(i+1)%n]=f[(i+1)%n][i]=true;//cout<<sum<<endl;}for(int i=0; i<k; i++) {scanf("%d",&b[i]);b[i]=b[i]-1;res+=a[b[i]];sum+=(ans-res)*a[b[i]];int x=(b[i]+1)%n,y=b[i]==0?n-1:(b[i]-1);f[b[i]][0]=f[b[i]][1]=1;f[x][1]=f[y][0]=1;}for(int i=0; i<n; i++) {int x=(i+1)%n,y=(i==0?n-1:(i-1));if(!f[i][0]||!f[x][1]) {sum+=a[i]*a[x];f[i][0]=f[x][1]=1;}if(!f[i][1]||!f[y][0]) {sum+=a[i]*a[y];f[i][1]=f[y][0]=1;}}printf("%I64d\n",sum);}return 0;}
- Codeforces Round #365 (Div. 2)
- Codeforces Round #365 (Div. 2)
- Codeforces Round #365 (Div. 2)
- Codeforces Round #365 (Div. 2)
- Codeforces Round #365 (Div. 2)
- Codeforces Round #365 (Div. 2)
- 【Codeforces Round #365 (Div. 2)】
- Codeforces Round #365 (Div. 2) 题解
- Codeforces Round #365 (Div. 2) A~C
- Codeforces Round #365 (Div. 2)题解报告
- codeforces round #365 (div.2) C
- Codeforces Round #365 (Div. 2) C
- Codeforces Round #365 (Div. 2) 题解
- 【解题报告】Codeforces Round #365 (Div. 2)
- Codeforces Round #365 (Div. 2) B
- Codeforces Round #102 (Div. 2)
- Codeforces Round #103 (Div. 2)
- Codeforces Round #103 (Div. 2)
- sdf
- Qt之操作数据库(SQLite)实例
- 整型转字符串固定长度,高位自动补0
- 【分享】常用音乐软件的选择
- HD--2066 一个人的旅行
- Codeforces Round #365 (Div. 2)
- Ubuntu防火墙设置
- Oracle怎么安装
- [Swift]Pods written in Swift can only be integrated as frameworks;
- Hindex--华为Hbase二级索引
- android studio lucasr.dspec UI design
- POJ-3687-Labeling Balls
- Android 47个小知识(自用)
- poj1693