2014 ACM-ICPC Asia Anshan Regional Contest(Online Version)
题目I - Osu! - HDU 5078
题目分析:最水的一道题吧,求两点间的距离和时间差值的最大比值
#include<stdio.h>
#include<math.h>
#include<algorithm>
using namespace std; const int MAXN = ;
const double EPS = 1e-; struct Point
{
double x, y, time;
};
double Dist(Point a, Point b)
{
return sqrt((a.x-b.x)*(a.x-b.x)+(a.y-b.y)*(a.y-b.y));
}
int main()
{
int T; scanf("%d", &T); while(T--)
{
int i, N;
double ans = ;
Point p[MAXN]; scanf("%d", &N); for(i=; i<N; i++)
{
scanf("%lf%lf%lf", &p[i].time, &p[i].x, &p[i].y);
if(i == )
ans = Dist(p[i], p[i-]) / (p[i].time-p[i-].time);
else if(i > )
ans = max(ans, Dist(p[i], p[i-]) / (p[i].time-p[i-].time));
} printf("%.10f\n", ans);
} return ;
}
E - Hatsune Miku - HDU 5074
题目分析:把前后等于-1的情况分别讨论一下,就是一个简单的dp了.....
#include<stdio.h>
#include<math.h>
#include<string.h>
#include<algorithm>
using namespace std; const int MAXN = ;
const int oo = 1e9+; int main()
{
int T; scanf("%d", &T); while(T--)
{
int i, j, k, N, M;
int dp[MAXN][MAXN], a[MAXN], val[MAXN][MAXN]; memset(dp, , sizeof(dp)); scanf("%d%d", &N, &M); for(i=; i<=M; i++)
for(j=; j<=M; j++)
scanf("%d", &val[i][j]); for(i=; i<=N; i++)
scanf("%d", &a[i]); for(i=N-; i>; i--)
{
if(a[i] == - && a[i+] == -)
{
for(j=; j<=M; j++)
for(k=; k<=M; k++)
dp[i][j] = max(dp[i][j], val[j][k]+dp[i+][k]);
}
else if(a[i] == -)
{
for(j=; j<=M; j++)
dp[i][j] = max(dp[i][j], val[j][a[i+]]+dp[i+][a[i+]]);
}
else if(a[i+] == -)
{
for(j=; j<=M; j++)
dp[i][a[i]] = max(dp[i][a[i]], val[a[i]][j]+dp[i+][j]);
}
else
dp[i][a[i]] = val[a[i]][a[i+]] + dp[i+][a[i+]];
} int ans = ; for(i=; i<=M; i++)
ans = max(ans, dp[][i]); printf("%d\n", ans);
} return ;
}
D - Galaxy - HDU 5073
题目分析:首先注意输入的是无序....(为此WA一次),题意就是让求去掉K个点后,剩余的点到中心的平方和,中心点计算是 所有数的位置和 / 剩余点数,转变成了求一些数的方差之和,然后化简公式可以发现可以直接计算出来结果,只需要遍历一遍即可(剩余点数一定是连续的,很容易求证)。设剩余点数M,剩余点数的平方和是 sum,剩余点数的位置和是cnt,那么 ans = sum - cnt * cnt / sum, 求出来最小的ans。
#include<stdio.h>
#include<math.h>
#include<string.h>
#include<algorithm>
using namespace std; const int MAXN = 1e5+;
const int oo = 1e9+; double loc[MAXN]; int main()
{
int T; scanf("%d", &T); while(T--)
{
int i, N, M, K; scanf("%d%d", &N, &K); for(i=; i<N; i++)
scanf("%lf", &loc[i]);
sort(loc, loc+N); if(K + >= N)
{
printf("0\n");
continue;
} M = N - K;
double cnt=, ans, sum=; for(i=; i<M; i++)
{
cnt += loc[i];
sum += loc[i]*loc[i];
} ans = sum - cnt*cnt/M; for(i=M; i<N; i++)
{
sum = sum + loc[i]*loc[i] - loc[i-M]*loc[i-M];
cnt = cnt + loc[i] - loc[i-M]; ans = min(ans, sum-cnt*cnt/M);
} printf("%.10f\n", ans);
} return ;
}
2014 ACM-ICPC Asia Anshan Regional Contest(Online Version)的更多相关文章
- HDU 5000 2014 ACM/ICPC Asia Regional Anshan Online DP
Clone Time Limit : 2000/1000ms (Java/Other) Memory Limit : 65536/65536K (Java/Other) Total Submiss ...
- hdu 5016 点分治(2014 ACM/ICPC Asia Regional Xi'an Online)
Mart Master II Time Limit: 12000/6000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)T ...
- ACM ICPC Central Europe Regional Contest 2013 Jagiellonian University Kraków
ACM ICPC Central Europe Regional Contest 2013 Jagiellonian University Kraków Problem A: Rubik’s Rect ...
- 2019-2020 ICPC, Asia Jakarta Regional Contest (Online Mirror, ICPC Rules, Teams Preferred)
2019-2020 ICPC, Asia Jakarta Regional Contest (Online Mirror, ICPC Rules, Teams Preferred) easy: ACE ...
- 2014 ACM/ICPC Asia Regional Anshan Online
默默的签到 Osu! http://acm.hdu.edu.cn/showproblem.php?pid=5003 #include<cstdio> #include<algorit ...
- HDU 5002 Tree(动态树LCT)(2014 ACM/ICPC Asia Regional Anshan Online)
Problem Description You are given a tree with N nodes which are numbered by integers 1..N. Each node ...
- HDU 5000 Clone(离散数学+DP)(2014 ACM/ICPC Asia Regional Anshan Online)
Problem Description After eating food from Chernobyl, DRD got a super power: he could clone himself ...
- 2014 ACM/ICPC Asia Regional Shanghai Online
Tree http://acm.hdu.edu.cn/showproblem.php?pid=5044 树链剖分,区间更新的时候要用on的左++右--的标记方法,要手动扩栈,用c++交,综合以上的条件 ...
- 2014 Asia AnShan Regional Contest --- HDU 5073 Galaxy
Galaxy Problem's Link: http://acm.hdu.edu.cn/showproblem.php?pid=5073 Mean: 在一条数轴上,有n颗卫星,现在你可以改变k颗 ...
随机推荐
- easyui中datagrid标题居中内容居左实现方式
easyui中的datagrid使用起来,确实还是挺轻巧方便,但是其中也有不少的问题,尤其遇到客户的一些特殊的需求时往往实现得不是很好.这个时候就需要我们自己动手来修改easyui的源码了.easyu ...
- 在github上搭建博客(使用Jekyll)
简单说,只需要三步,就可以在 Github 搭建起一个博客: 在 Github 上建一个名为 xxx.github.io 的库: 把看中了的 Jekyll 模板 clone 到本地: 把这个模板 pu ...
- ios&h5混合开发项目仿app页面跳转优化
前言:本人原本是ios开发工程师,但由于现今H5的兴起,行内刮起了一阵混合开发的风气,趁着这股劲,我也学了前端开发,不说研究的多深,但也能胜任日常的开发工作.长话短说,现今的混合开发应该还处于摸索阶段 ...
- JS 同源策略
对于任何基于WEB的应用,最重要的就是安全性.JS中有各种安全检查以防止恶意脚本攻击你的机器,其中一些特定的安全手段在各种浏览器中都有采用.如:Mozilla有个完全独特的完全模型,涉及到了签署脚本和 ...
- 类库探源——System.Exception
一.MSDN描述 Exception 类: 表示在应用程序执行期间发生的错误 命名空间 : System 程序集: mscorlib.dll 继承关系: 常用属性(含字段)和方法: 1. 属性Me ...
- Net的struct的内存对齐问题
很少有人谈起struct的内存对齐问题, 就是在很多C#书中, 也很少提及. 但在实际应用中, 如果不注意内存对齐, struct比较大的话, 则会浪费一定的内存. 先从一个实例看起. publ ...
- js小分享
之前实现一些js代码时,总觉得无法下手,所以最近在学习一下特别细的知识点,分享笔记.嘻嘻,偷个小懒,我把自己的笔记拍个照片就不打字了.嘎嘎,放心放心,自觉得字写的还算ok的啦- 表示家里的老弟玩游戏, ...
- jQuery分析(2) - $工厂函数分析
前言 从这节进入jQuery的世界,首先从jQuery的入口函数开始了解jQuery()或$是如何运作的,这里我给出了一个最小的例子来分析. 回忆 在进入分析代码前我们回想下jQuery的使用方法有哪 ...
- SVM(支持向量机)算法
第一步.初步了解SVM 1.0.什么是支持向量机SVM 要明白什么是SVM,便得从分类说起. 分类作为数据挖掘领域中一项非常重要的任务,它的目的是学会一个分类函数或分类模型(或者叫做分类器),而支持向 ...
- WinForm控件复杂数据绑定常用数据源(对Combobox,DataGridView等控件DataSource赋值的多种方法)
开始以前,先认识一下WinForm控件数据绑定的两种形式,简单数据绑定和复杂数据绑定. 1) 简单数据绑定 简单的数据绑定是将用户控件的某一个属性绑定至某一个类型实例上的某一属性.采用如下形式进行绑定 ...