二次联通门 : cogs 999. [東方S2]雾雨魔理沙

摸你傻赛高!!

/*
cogs 999. [東方S2]雾雨魔理沙 原来以为是一道计算几何的题 可是细细一想发现。。
这就是一道dp 由于给定了斜率
每个点的b值也可以确定了(y = kx + b) 按照b值排序
后区间dp搞搞就好了 */
#include <algorithm>
#include <iostream>
#include <cstring>
#include <cstdio>
#include <cmath> #define PI 3.1415926 void read (int &now)
{
register char word = getchar ();
int temp = ;
for (now = ; !isdigit (word); word = getchar ())
if (word == '-')
temp = ;
for (; isdigit (word); now = now * + word - '', word = getchar ());
if (temp)
now = -now;
} double k; struct Point
{
int x, y; int value, mul; Point (int __x, int __y, int __v, int __m) : x (__x), y (__y), value (__v), mul (__m){}
Point () {} bool operator < (const Point &now) const
{
return (this->y - (this->x * k)) < (now.y - (now.x * k));
}
}; #define Max 2008
Point point[Max]; int _sum[Max], _mul[Max];
double dp[Max]; inline double max (double a, double b)
{
return a > b ? a : b;
} #define Cogs int main (int argc, char *argv[])
{
#ifdef Cogs freopen ("marisa.in", "r", stdin);
freopen ("marisa.out", "w", stdout); #endif int N;
read (N);
register int i, j; for (i = ; i <= N; ++ i)
read (point[i].x), read (point[i].y), read (point[i].value), read (point[i].mul); scanf ("%lf", &k);
k = tan (k / * * PI); std :: sort (point + , point + + N); for (i = ; i <= N; ++ i)
{
_sum[i] = _sum[i - ] + point[i].value;
_mul[i] = _mul[i - ] + point[i].mul; dp[i] = ; for (j = ; j <= i; ++ j)
dp[i] = max (dp[i], dp[j - ] + double(_sum[i] - _sum[j - ]) * (_mul[i] - _mul[j - ]) / (i - j + ));
} printf ("%.3lf", dp[N]); return ;
}

cogs 999. [東方S2]雾雨魔理沙的更多相关文章

  1. cogs 997. [東方S2] 射命丸文

    二次联通门 : cogs 997. [東方S2] 射命丸文 /* cogs 997. [東方S2] 射命丸文 二维前缀和 枚举每个子矩阵 更新最大值.. 莫名rank1 */ #include < ...

  2. cogs 998. [東方S2] 帕秋莉·诺蕾姬

    二次联通门 : cogs 998. [東方S2] 帕秋莉·诺蕾姬 交上去后发现自己没上榜 就想着加点黑科技 把循环展开一下 结果WA了.. 万恶的姆Q /* cogs 998. [東方S2] 帕秋莉· ...

  3. cogs 920. [東方S1] 琪露诺

    二次联通门 : cogs 920. [東方S1] 琪露诺 /* cogs 920. [東方S1] 琪露诺 dp 方程为dp[i] = max (dp[i - L], dp[i - L + 1] ... ...

  4. cogs 2569. [東方] 博丽灵梦 梦想妙珠

    二次联通门 : cogs 2569. [東方] 博丽灵梦 梦想妙珠 /* cogs 2569. [東方] 博丽灵梦 梦想妙珠 莫队水过.. 好久没一遍AC了.. 卡线上榜2333 */ #includ ...

  5. cogs 943. [東方S3] 铃仙•优昙华院•稻叶

    二次联通门 : cogs 943. [東方S3] 铃仙•优昙华院•稻叶 /* cogs 943. [東方S3] 铃仙·优昙华院·稻叶 概率dp 貌似做麻烦了 邻接矩阵和链式前向星都用上了... dp[ ...

  6. cogs 944. [東方S3] 藤原妹红

    二次联通门 : cogs 944. [東方S3] 藤原妹红 /* cogs 944. [東方S3] 藤原妹红 最小生成树 + 树形dp 首先对原图跑最下生成树 后建出一棵树 在树上进行dp 先走到叶子 ...

  7. COGS 942. [東方S3] 比那名居天子

    Problem 1 比那名居天子(tenshi.cpp/c/pas) 题目描述 在幻想乡,比那名居天子是管理着『要石』的天人.『要石』是能够引发和镇压地震的存在,当然也可以用来改变地形.因为在幻想乡引 ...

  8. [COGS1000]伊吹萃香 最短路

    1000. [東方S2] 伊吹萃香 输入文件:suika.in   输出文件:suika.out   简单对比 时间限制:1 s   内存限制:128 MB Problem 4 伊吹萃香(suika. ...

  9. java 覆盖hashCode()深入探讨 代码演示样例

    java 翻盖hashCode()深入探讨 代码演示样例 package org.rui.collection2.hashcode; /** * 覆盖hashcode * 设计HashCode时最重要 ...

随机推荐

  1. Wamp Https 的 SSL认证 配置说明

    Wamp Https 的 SSL认证 配置说明版本 Apache2.2.11注:右下角图标的 重启 不能有效加载 配置文件 应退出后重新运行注:C:\wamp\bin\apache\Apache2.2 ...

  2. VS web停止调试后关闭浏览器

  3. 面对代码中过多的if...else的解决方法

    原 6个实例详解如何把if-else代码重构成高质量代码 置顶 2017年09月11日 23:47:12 yinnnnnnn 阅读数 21433更多 分类专栏: # 理论   版权声明:本文为博主原创 ...

  4. sql server union与unionALL区别

    两种用法 一样, 查询字段类型需要一致 union 会自动去重 union all  不会去重 select name ,age from student union select name ,age ...

  5. intent 和 Broadcast Receiver之间的通信

    工作原理是通过封装一个service启动的一个线程产生的随机数封装到intent对象传递给Activity,Activity接受到后讲结果输出到屏幕. java的代码: package jm.out; ...

  6. [C++] 初始化 vs 赋值

  7. Shadowmap简易实现

    之前一直没有自己实现过阴影,只是概念上有所了解,这次通过Demo进行实际编写操作. 总的来说没有什么可以优化的,倒是对于窗户这种可用面片代替的物体似乎能优化到贴图上,之前arm有个象棋屋的demo做过 ...

  8. 豆瓣Top250

    """ 爬取豆瓣电影TOP250 - 完整示例代码 """ import codecs import requests from bs4 i ...

  9. 前端有用的CSS属性和JS方法

    1.CSS属性: 透明属性(值越大越不透明): IE:filter:alpha(opacity:30) Google:opacity:0.3 层次属性(值大的会在上面): z-index:100 2. ...

  10. Node.js 中 exports 和 module.exports 的区别

    每一个模块中都有一个 module 对象, module 对象中有一个 exports 对象 我们可以把需要导出的成员都放到 module.exports 这个接口对象中,也就是 module.exp ...