题目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)的更多相关文章

  1. 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 ...

  2. 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 ...

  3. 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 ...

  4. 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 ...

  5. 2014 ACM/ICPC Asia Regional Anshan Online

    默默的签到 Osu! http://acm.hdu.edu.cn/showproblem.php?pid=5003 #include<cstdio> #include<algorit ...

  6. 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 ...

  7. 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 ...

  8. 2014 ACM/ICPC Asia Regional Shanghai Online

    Tree http://acm.hdu.edu.cn/showproblem.php?pid=5044 树链剖分,区间更新的时候要用on的左++右--的标记方法,要手动扩栈,用c++交,综合以上的条件 ...

  9. 2014 Asia AnShan Regional Contest --- HDU 5073 Galaxy

    Galaxy Problem's Link:   http://acm.hdu.edu.cn/showproblem.php?pid=5073 Mean: 在一条数轴上,有n颗卫星,现在你可以改变k颗 ...

随机推荐

  1. mac下安装配置nginx环境

    本文介绍 nginx 在mac上的安装. 我是通过brewhome 来安装的. brew install nginx 一路顺畅. 下面是安装信息. 复制代码 代码如下: hematoMacBook-P ...

  2. oc 获取当前时间

    //获取当前日期 NSDate* date = [NSDate date]; NSDateFormatter* dateFormat = [[NSDateFormatter alloc] init]; ...

  3. AdaBoost原理,算法实现

    前言: 当做重要决定时,大家可能综合考虑多个专家而不是一个人的意见.机器学习处理问题也是如此,这就是元算法背后的思路.元算法是对其他算法进行组合的一种方式,前几天看了一个称作adaboost方法的介绍 ...

  4. 理解ThreadLocal背后的概念

    介绍 我之前在任何场合都没有使用过thread local,因此没有注意到它,直到最近用到它的时候. 前提信息 线程可以理解为一个单独的进程,它有自己的调用栈.在java中每一个线程都有一个调用栈或者 ...

  5. 关于反射Assembly.Load("程序集").CreateInstance("命名空间.类")

    关于反射Assembly.Load("程序集").CreateInstance("命名空间.类") 而不管在哪一层写这段代码其中的("程序集" ...

  6. Discuz论坛下载与安装

    Part1 Discuz下载 百度“discuz下载” 2. 找到下图这里 3. 选择你需要的版本,这里我选了X3.1版 4. 选择UTF-8简体下载 这是我下载好的文件 Part2 Discuz安装 ...

  7. 前端开发福音!阿里Weex跨平台移动开发工具开源-b

    阿里巴巴今天在Qcon大会上宣布跨平台移动开发工具Weex开放内测邀请.Weex能够完美兼顾性能与动态性,让移动开发者通过简捷的前端语法写出Native级别的性能体验,并支持iOS.安卓.YunOS及 ...

  8. [Kinect]XBox One Kinect连接Windows

    注:本文全原创,作者:Noah Zhang  (http://www.cnblogs.com/noahzn/) XBox One带体感套装去年就买了,昨天京东349元入了个适配器,下午就送到了,开箱. ...

  9. -Xms -Xmx -Xmn -Xss -XX:

    这两天遇到了pergen space的问题,在晚上查了查发现还挺普遍,并且通过eclipse启动,通过bat启动或者linux下通过sh启动,处理方式是不一样的,不过都是调整jvm的大小 如果有遇到同 ...

  10. 写个自动安装JDK的shell脚本

    #!/bin/bash ################################################# # # INSTALL JDK AUTOMATICALLY # # auth ...