杭电1260java实现
题目链接
这题的核心状态转移方程是:dp[j]=min(dp[j-1] dan[j],dp[j-2] shuang[j-1]);dan[i]表示第i个人的单票,shuang[i]代表i-1和i两个人的钱,到第i个人就是要判断他是单人 前i-1人最少合最少还是他和前一个人双人票 前i-2个人最少合最少。
附上代码如下:
import java.util.Scanner;
public class 杭电1260 {public static void main(String[] args) { Scanner sc=new Scanner(System.in); int n=sc.nextInt();//n个不同的场景int value[]=new int[n];//储存结果for(int i=0;i<n;i ){int k=sc.nextInt();//总人数int dp[]=new int[k 1];int dan[]=new int[k 1];//单人所需要的时间for(int j=1;j<k 1;j ){dan[j]=sc.nextInt();}if(k==1) {value[i]=dan[1];}else //双人票时间{int shuang[]=new int[k];for(int j=1;j<k;j ){shuang[j]=sc.nextInt();}dp[1]=dan[1];for(int j=2;j<k 1;j ){dp[j]=min(dp[j-1] dan[j],dp[j-2] shuang[j-1]);}value[i]=dp[k];} int hour=value[i]/3600;int min=value[i]600/60;int second=value[i]`;//统一格式String timeStr = unitFormat(hour 8) ":" unitFormat(min) ":" unitFormat(second);if((hour 8)/12%2==0)//判断上下午{System.out.println(timeStr " am");}else{System.out.println(timeStr " pm");}} }private static String unitFormat(int i) { String retStr = null;if (i >= 0 && i < 10)retStr = "0" Integer.toString(i);elseretStr = "" i;return retStr;}private static int min(int i, int j) { return i<j?i:j;}
}
杭电1260java实现相关推荐
- 【杭电ACM】1097 A hard puzzle
[杭电ACM]1097 A hard puzzle http://acm.hdu.edu.cn/showproblem.php?pid=1097 先用int手写了算法结果竟然wrong answer ...
- 【ACM】杭电OJ 1106 函数atoi
函数atoi是把字符串转化成整数的函数,头文件为 #include "stdlib.h" e.g. 运行环境:Dev-C++ 5.11 杭电1106 调用了sort函数,运行的时间 ...
- 【ACM】杭电OJ 2037
题目链接:杭电OJ 2037 先把b[i]进行排序,然后,b[i]与a[i+1]进行比较. #include <iostream> #include <cstdio> #inc ...
- 【ACM】杭电OJ 2020(排序)
题目链接:杭电OJ 2020 排序可以有冒泡排序,选择排序,或者直接调用函数. 下面是选择排序: #include <stdio.h> #include <math.h> in ...
- 【ACM】杭电OJ 2018
题目链接:杭电OJ 2018 从n>4开始,每一年的牛的数量=前一年的牛的数量+三年前的牛的数量 问:为什么是三年前? 答:假设三年前有一头小牛出生,出生的那一年即为第一年,到了第四年,即三年后 ...
- 【ACM】杭电OJ 1005
题目链接:杭电OJ 1005 超时代码如下(而且开辟的数组空间大小不够): #include <stdio.h> int m[100000]; int f(int n,int a,int ...
- 【ACM】杭电OJ 1004
题目链接:杭电OJ 1004 运行环境:Dev-C++ 5.11 思路: 先把先把num数组全部赋值为1:第一个颜色单独输入,从第二个开始,需要与前面的进行比较,如果前面有相同的颜色,则在目前的nu ...
- 【ACM】杭电OJ 2012。
题目链接:杭电OJ 2012 思路很简单,但是有一种高效算法显示编译错误,不知道为什么 运行环境:VS2017 AC代码: #include <stdio.h> #include < ...
- 【ACM】杭电OJ 1003。
运行环境VS2017 题目链接:杭电OJ 1003 主要思想是: 用d[i]来存放前i项中最大的和,得到end,然后再倒推,得起始的位置begin 然而在程序42行的疑问,大家可以讨论一下吗???? ...
最新文章
- OSPF中virtual-link
- ubuntu19 安装git_如何在Ubuntu 20.04上安装Git
- TF:利用TF读取数据操作,将CIFAR-10 数据集中的训练图片读取出来,并保存为.jpg格式
- php - 冒泡排序
- CentOS7升级Python2.7.5至2.7.13版本
- Windows 环境下 git 客户端中的 git-bash 和 MINGW64
- matlab randn 范围,请问randn产生的数据在什么范围内变化
- python import 路径设置
- php程序里的configini_PHP读取配置文件类实例(可读取ini,yaml,xml等)
- Wireshark 抓包小例子
- Linux环境下NodeJS和MongoDB的安装配置
- IaaS/PaaS平台搭建
- HLW8032在stm32f413zh上的移植(基于HAL库)
- 光缆接续盒图标_光缆线路施工技术(超全)
- 企鹅,大鱼,百家,头条到底那个收益高,新手该怎么来做?
- 三种方式打开命令行窗口
- 西门子博图指令(定时器操作三)
- mathtype7.4免费用 + office2019 成功配置过程
- C语言实现模拟键盘输入字符串
- javascript语言中和||有什么区别?