Java贪心算法: 田忌赛马

2023-11-02

import java.util.Scanner;
import java.util.List;
import java.util.ArrayList;
import java.util.Collections;
public class Main{ 
    public static void main(String args[]){
        int n, m;
        List<Integer>  vTian=new ArrayList<Integer>();
        List<Integer>  vQi=new ArrayList<Integer>();
        Scanner in=new Scanner(System.in);




        while(true){
            n=in.nextInt();
            if(n==0) break;


            //输入数据  
            for(int i = 0; i < n; ++i)
            {
                vTian.add(in.nextInt());
            }
            for(int i = 0; i < n; ++i)
            {
                vQi.add(in.nextInt());
            }
            //处理数据  
            Collections.sort(vTian);
            Collections.sort(vQi);


            int i=0, j=0, x=n-1, y=n-1,cnt=0;
            boolean bLast=true;


            while(bLast)
            {
                //是否是最后一匹马  
                if(x==i)
                    bLast=false;


                if(vTian.get(x) > vQi.get(y))
                {//如果田忌当前最好的马可以胜齐王最好的马,那么比一场  
                    x--;
                    y--;
                    cnt+=200;
                }
                else if(vTian.get(i)> vQi.get(j))
                {//如果田忌当前最差的马可以胜齐王最差的马,那么比一场  
                    i++;
                    j++;
                    cnt += 200;
                }
                else
                {//否则,让田忌最差的马和齐王最好的好比一场  
                    if(vTian.get(i) < vQi.get(y))
                        cnt -= 200;
                    i++;
                    y--;
                }
            }
            System.out.println(cnt);
            vTian.clear();
            vQi.clear();
        }


    }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Java贪心算法: 田忌赛马 的相关文章

  • python实现名片管理操作系统

    根据黑马程序员演练的python实现名片管理操作系统 一共分为两个文件第一个card main py表示主题搭建的框架 第二个是card tools py表示往框架中填写的主要内容 代码实现在liunx ubuntu 中 实现的是终端操作
  • VIM中的保存和退出命令

    1 打开命令 vim a log 注意后缀名要加上 2 退出命令 按ESC键 跳到命令模式 然后输入 q 不保存退出 或者 wq 保存退出 3 注意 以 和 开头的命令都有历史纪录 可以首先键入 或 然后按上下箭头来选择某个历史命令 w 保
  • cmd高级教程

    CMD高级使用教程 目录 第一章 批处理基础 第一节 常用批处理内部命令简介 1 REM 和 2 ECHO 和 3 PAUSE 4 ERRORLEVEL 5 TITLE 6 COLOR 7 mode 配置系统设备 8 GOTO 和 9 FI
  • 【Android】学习ContentProvider和ContentResolver,写个CRUD案例

    文章目录 前言 1 Provider的代码逻辑 1 创建数据库连接DBHelper类 2 创建一个自定义的Provider类 3 在清单中注册该PersonProvider 2 Resolver的代码逻辑 1 界面布局xml 2 MainA
  • CTF必备技能丨Linux Pwn入门教程——stack canary与绕过的思路

    Linux Pwn入门教程系列分享如约而至 本套课程是作者依据i春秋Pwn入门课程中的技术分类 并结合近几年赛事中出现的题目和文章整理出一份相对完整的Linux Pwn教程 教程仅针对i386 amd64下的Linux Pwn常见的Pwn手
  • Java 手动解析不带引号的JSON字符串的操作

    1 需求说明 项目中遇到了一批不带引号的类JSON格式的字符串 Name Heal Age 20 Tag Coding Reading 需要将其解析成JSON对象 然后插入到Elasticsearch中 当作Object类型的对象存储起来
  • 利用Python+Django快速开发Web毕业设计

    更新完整的源码和论文案例 Python Django Web图书管理系统毕业设计之源码 论文篇 李威威wiwi的博客 CSDN博客 图书管理系统web源码 论文选题 毕业设计的第一步是选择毕设的论文题目 计算机专业的搞一个XXX系统应该是最
  • junit不同类指定方法批量单元测试

    批量测试不同类里面指定版本的单元测试 每个版本的批量测试如下 修改一下版本号和对应的类名即可 版本号需要在对应的单元测试方法上加 TestVersion v1 0 v1 0单元测试套件 可以指定测试类 会执行指定类里面的全部测试用例 可以指
  • 企业如何创建一个网站?

    如果企业想要创建一个网站 那么有许多选项可供选择 其中一些是简单的选择 而另一些则需要更多的专业知识和工具 但是不管选择哪种方法 都必须遵循一定的步骤才可以 下面给大家说说企业如何创建一个网站 一 注册域名 把注册域名放在第一步是因为心仪或
  • YOLO算法是干嘛的?

    学人工智能的朋友对YOLO一定不陌生 YOLO是一种目标检测算法 目标检测的任务是从图片中找出物体并给出其类别和位置 对于单张图片 输出为图片中包含的N个物体的每个物体的中心位置 x y 宽 w 高 h 以及其类别 Yolo的预测基于整个图
  • Maven安装配置教程(Windows版)

    一 Maven下载 maven下载官网地址 Maven Download Apache Maven 一 maven最新版本下载 进入这个页面 进行如图两步操作点击下载 即可下载maven最新版 bin zip文件为Windows版本 二 m
  • Box-Cox转换

    Box Cox变换后的数据 可以使回归模型满足线性 误差独立性 误差方差齐性和误差正态性 同时又不丢失信息 对存在非线性关系的数据 可以使用复杂模型拟合非线性函数来处理非线性问题 但这样的运算更复杂 先采用相对简单的数据转换来尝试将数据关系
  • 安装 Jenkins 保姆级别教程 jdk17 安装插件htmlpublisher

    文章目录 1 下载JDK17 2 下载jenkins 3 安装Jenkins 4 在页面中打开Jenkins 5 切换Jenkins的工作空间 6 安装插件 1 下载JDK17 注意区分 简称 描述 JDK java开发工具包 JRE ja
  • 使用webdriver-manager解决浏览器与驱动不匹配所带来自动化无法执行的问题

    1 前言 在我们使用 Selenium 进行 UI 自动化测试时 常常会因为浏览器驱动与浏览器版本不匹配 而导致自动化测试无法执行 需要手动去下载对应的驱动版本 并替换原有的驱动 可能还会遇到跨操作系统进行测试的时候 以及浏览器自动升级后
  • 若依框架包名修改器

    链接 https pan baidu com s 15YJCZtm28sJLcEp9EAH6aQ pwd 8n1v 提取码 8n1v
  • 用tensorflow搭建简单的CNN网络

    使用了两种不同的tensorflow API搭建了一个简单的CNN网络 用于识别mnist数据集中的手写数字 输出结果有10个类 数字0 9 网络结构只有简单的两层卷积层 全连接层 输出层 如下如图所示 搭建网络的步骤如下 读取mnist数
  • iOS开发之Xcode的静态分析(Static Code Analysis)与常见问题解决

    iOS开发之Xcode的静态分析 Static Code Analysis 与常见问题解决 一 Xcode Analyze静态分析 Static Code Analysis Static Code Analysis 静态代码分析 用来发现源
  • 【LeetCode-多线程】1116. 打印零与奇偶数

    目录 一 题目 二 解决 1 Semaphore 2 CountDownLatch 3 Thread yield 4 LockSupport 5 Thread yield 6 ReentrantLock Condition 三 参考 一 题
  • JDBC开发步骤总结

    1 加载驱动 搭建环境 I 将Oracle驱动Jar包复制到项目中的自建lib文件夹下 II ojdbc6 jar 右键 gt build path gt add to build path III Class forName oracle
  • 帆软—报表专题

    函数计算格式 if函数判断 连接运算符 concat 正则 设计器函数汇总 count 文本函数 日期时间函数 逻辑switch函数 函数使用位置 https help fanruan com finereport10 0 doc view

随机推荐

  • ipad上linux终端,如何使用iSH在iPad或iPhone上获取Linux Shell

    您是否曾经希望在iPad或iPhone上安装Linux命令行 使用iSH 您可以非常接近实现该目标 iSH Shell是适用于iOS的Linux Shell 它使用x86模拟器在iPad或iPhone上运行Alpine Linux的简化版本
  • uniapp微信小程序外壳内联H5实现支付

    业务场景 用户有现成的微信H5应用 有微信支付 用户想要一个一摸一样的小程序版本 但是又不想高成本去重新开发 所以可以考虑采用小程序的web view组件内联现有的微信H5应用 哇简直不要再偷懒了 简直就是分分钟搞定的事 是不是太简单了 给
  • 网络安全是什么?如何成为一位优秀的网络安全工程师/黑客?

    网络安全是什么 首先说一下什么是网络安全 网络安全工程师工作内容具体有哪些 网络安全是确保网络系统的硬件 软件及其系统中的数据受到保护 不因偶然的或者恶意的原因而受到破坏 更改 泄露 系统连续可靠正常地运行 保障网络服务不被中断 网络安全工
  • java实现短链接得到长链接!!!

    java实现短链接得到长链接 重点 params setParameter ClientPNames HANDLE REDIRECTS false 禁止重定向 不设置 有些短链接 获取不到headers里的Location HttpClie
  • chrome 全屏模式 隐藏地址栏_6个Chrome隐藏的小技巧,你可能不知道但很实用

    Chrome占据了浏览器的大半壁江山 不少人也是将它作为电脑的默认浏览器 而它也确实非常强大 拥有着非常快的速度以及丰富的插件 同时它也隐藏了不少实用的功能 通过挖掘它们让我们更加意识到Chrome的强大 以下便是我们收集的6个不为大众所熟
  • Linux用户环境变量、系统环境变量和PATH变量

    目录 一 用户环境变量 二 系统环境变量 三 PATH变量 1 修改PATH环境变量 一 用户环境变量 PS 修改文件执行权限案例 1 在文本编辑器中新建一个shell脚本 直接执行这个文件会发现权限不够 以详细模式查看这个文件的权限 发现
  • OpenCV——Sobel边缘检测

    目录 一 Sobel算法 1 算法概述 2 主要函数 二 C 代码 三 python代码 四 结果展示 1 灰度图 2 X方向一阶边缘 2 Y方向一阶边缘 3 整幅图像的一阶边缘 五 相关链接 一 Sobel算法 1 算法概述 Sobel边
  • matplotlib库使用教程:这一篇就够了

    一 导入库 import matplotlib pyplot as plt 二 显示图片 plt imshow imge 负责对图像进行处理 imge类型
  • Zotero安装教程(非常详细)从零基础入门到精通,看完这一篇就够了

    Zotero安装及简单配置 1 引言 Zotero是目前最符合我对文献管理软件需求的一款 在这里简单介绍下其安装教程及我在使用的插件 2 安装及同步设置 2 1 下载 前往官网https www zotero org 点击Download按
  • J2EE&反射

    文章目录 什么是反射 类类 反射实例化 反射动态方法调用 反射读写属性 源代码 什么是反射 Java语言的一种机制 通过这种机制可以动态的实例化对象 读写属性 调用方法 类类 类类 描述类的类 不是官方定义的语言 Class forName
  • Flutter开发篇 TextField和TextFromField

    TextFiled和TextFromField都是用来输入的 但是也是有区别的 尤其是方法有很大的区别 大家可以分别查看源码文档 在资料比较少的情况下那是最快的学习方法 TextEditingController controller Te
  • git创建本地分支,远程分支

    一 本地分支 创建本地分支 然后切换到dev分支 git checkout b dev git checkout命令加上 b参数表示创建并切换 相当于以下两条命令 git branch dev git checkout dev 然后 用gi
  • word自动编号设置方法

    需求是使用word时自动生成如下类型的自动编号 第一章 项目详细设计 1 1 视频监控系统 1 1 1 前端子系统 1 1 1 1 球机 第二章 案例介绍 2 1 某某区平安城市介绍 实现方法 1 首先点击 多级列表 定义新的多级列表 2
  • python爬虫-数据可视化-气温排行榜

    本文的文字及图片来源于网络 仅供学习 交流使用 不具有任何商业用途 版权归原作者所有 如有问题请及时联系我们以作处理 以下文章来源于腾讯云 作者 py3study 想要学习Python Python学习交流群 1039649593 满足你的
  • vulnhub靶机Brainpan

    主机发现 arp scan l 端口扫描 nmap min rate 10000 p 192 168 21 156 服务扫描 nmap sV sT O p9999 10000 192 168 21 156 这个地方感到了有点不对劲 pyth
  • 粒子滤波(Particle filter)算法简介及MATLAB实现

    粒子滤波是以贝叶斯推理 点击打开链接 和重要性采样为基本框架的 因此 想要掌握粒子滤波 对于上述两个基本内容必须有一个初步的了解 重要性采样呢 其实就是根据对粒子的信任程度添加不同的权重 添加权重的规则就是 对于我们信任度高的粒子 给它们添
  • 解决pip安装numpy问题:ERROR: Failed building wheel for numpy/ERROR: numpy-1.22.4+mkl-cp38-cp38-win_amd64.wh

    出现过问题 ERROR Failed building wheel for numpy 下载了whl文件后报错ERROR numpy 1 22 4 mkl cp38 cp38 win amd64 whl is not a supported
  • java怎么关闭fxml窗口,如何关闭窗口关闭JavaFX应用程序?

    In Swing you can simply use setDefaultCloseOperation to shut down the entire application when the window is closed Howev
  • 因果推理(八):工具变量(Intrusmental Variables)

    关于因果关系的识别 前面介绍了一些方法 随机对照试验 后门调整 前门调整 do 演算 今天介绍另一种进行因果效应识别的另一种方法 工具变量 1 什么是工具变量 上面的因果图中 Z Z Z就是一个工具变量 可以利用它在 U U U观测不到的情
  • Java贪心算法: 田忌赛马

    import java util Scanner import java util List import java util ArrayList import java util Collections public class Main