2017.7.31 征途 失败总结
、这题其实是一步分析错了,所以一直wa
首先要求方差,就是要求 Σ(ai-V平均)^2 当然还要除以m (第一遍忘了除,第二遍除的是n、、)
平均数就是总和再除以m
这可能不能用小数 示完,所以就考虑拆成分数,这样算到最后一步分母是m^3(一个平方+数的个数)
因为要输出v*m^2所以直接分子/m就好了
然后转移是 f【i】【j】=min(f【i-1】【k】+(qsum【j】-qsum【k】-v平均)^2)
拆开就可以写出直线方程:
2*qsum【j】*qsum【k】*m*m+f【j】+2*qsum【j】*m*qsum【n】-m*m=f【k】+q【k】*q【k】*qsum【n】*qsum【n】+2*qsum【k】*m*qsum【n】;
然后在n*m的做就行了 设v1=qsum【n】 v2=m; 纯粹为了方便
要注意枚举的时候从上一层转移,所以移动l++用当前层(用现在的状态调整状态的选取) r--要用上一层(加入一个选择,并维护状态的凸包形态)
另外枚举的时候尽量避免枚举k,而加减却要用k-1的情况(自找麻烦,而且容易遗漏)
对于有一天没走路的情况,可以通过递推避免,如果f【1】【0】==inf 拿后来的f【2】【1】也将由f【1】【0】转移来,==inf 所以细节需要处理,保证每一天都走
码:
#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
long long n,m,a[3005],qsum[3005],v1,v2,f[3005][3005],l,r,q[3005];
double xl(int ceng,long long a,long long b)
{return (double(f[ceng][b]-f[ceng][a]+qsum[b]*qsum[b]*v2*v2-qsum[a]*qsum[a]*v2*v2+2*(qsum[b]-qsum[a])*v1*v2)/double(qsum[b]-qsum[a]));
}int main()
{memset(f,0x6f,sizeof(f));
scanf("%lld%lld",&n,&m);
for(int i=1;i<=n;i++)scanf("%lld",&a[i]),v1+=a[i],qsum[i]=qsum[i-1]+a[i];
v2=m;
f[0][0]=0;
for(int i=1;i<=n;i++)
f[1][i]=(qsum[i]*v2-v1)*(qsum[i]*v2-v1);
for(int i=2;i<=m;i++)
{ l=1;r=1;q[1]=0;for(int j=1;j<=n;j++){ while(l<r&&(xl(i-1,q[l],q[l+1])<=(2*qsum[j]*v2*v2)))l++;int k=q[l];f[i][j]=f[i-1][k]+(qsum[j]*v2-qsum[k]*v2-v1)*(qsum[j]*v2-qsum[k]*v2-v1); while(l<r&&(xl(i-1,q[r-1],q[r])>xl(i-1,q[r],j)))r--; q[++r]=j;}
}printf("%lld",f[m][n]/m);
}
2017.7.31 征途 失败总结相关推荐
- 《麻省理工科技评论》:2018年18大科技趋势,2017年7大失败技术
来源:科技周 摘要:2018 年伊始,许多科技大势仍在继续,正如比尔·盖茨所说,"大多数人高估了某种技术的短期价值,低估了其长期价值."同样,大多数的年度预测会高估了一年内一些事件 ...
- 读论文,衣物检索:Clothing Retrieval with Visual Attention Model(2017.10.31)
Clothing Retrieval with Visual Attention Model(2017.10.31) 创新点 VAM不需要强监督训练信息的landmark: 提出了Impdrop方法, ...
- 找不到mfc140u.dll或者Microsoft Visual C++ 2017 Redistributable一直安装失败解决
找不到mfc140u.dll 安装后提示这个问题,我将xshell卸载重新安装后发现安装过程中提示Microsoft Visual C++ 2017 Redistributable一直安装失败,所以问 ...
- 2017.3.31 棋盘制作 失败总结
其实这种在平面里找子矩形有固定的套路: 找出往左延伸的 再上下找.. 但是还是跪了 毕竟弱.. 码: #include<iostream> #include<cstdio&g ...
- 第四天2017/03/31(下午1:结构体、数组)
//备用知识:没有内存,哪有指针? int main() {//错误程序char *name; //此处只定义了指针name(指针占4个字节),并没有给name分配内存//name = (char*) ...
- 2017.3.6 种树 失败总结
一看这题--难道不是 n^2 dp? 怎么可能不是n^2dp? n=200000 怎么搞... 总之要想尽一切方法搞出来.. 想到了网络流,但这个m是至多而不是定值. 想到了最短路,但没法确定m ...
- 2017.10.31笔记
10.31笔记 1.js数据类型: ①基本数据类型:第一个:number 数字类型 NAN 非数类型 第二个:string 字符串,两个引号之间的内容 第三个:boolean 布尔值( true fa ...
- 征途linux编译错误,linux下装征途失败问题
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 080712-19:13:50 SS[20] ERROR: Unknown column 'CALLTIMES' in 'field list' 0807 ...
- 第四天2017/03/31(下午2:结构体、数组)
[作业]二级指针做输出(在被调函数中分配空间,主调函数中使用) //实现的目标:把两个字符数组作为输入,排好序保存到另外一个字符数组中. #include<iostream> using ...
最新文章
- 类成员初始化顺序php,PHP-php类成员变量初始化的问题?
- 【Java算法】一天24小时中,时针和分针一共重合多少次?
- 图书管理系统活动图和时序图
- WinForm读取指定的config文件的内容
- textmetric结构
- 单点登陆的三种实现方式
- LeetCode 898. 子数组按位或操作(前缀和思想)
- 帝豪gl车机系统降级_美好的陪伴、舒心的用车,帝豪GL,32000公里用车有感
- PCM格式音频数据的读取
- matlab设计匹配滤波器,[转载]利用MATLAB实现匹配滤波器的仿真验证
- 搜狗新闻语料库,构建Word2Vec中文词向量
- 计算机视觉论文-2021-03-31
- 美团2021校招笔试-编程题题解
- 由浅入深讲二叉树4种遍历算法的由来
- Windows 10无法打开设置
- Lumen 邮箱推送
- 利用SPI驱动12864液晶
- stm32H70之使用片内的2Mflash
- abb机器人过载报错_ABB机器人常见报警代码与解决方案
- BCS2022|齐向东:“零事故”将成为网络安全建设新目标