Java版排序竞赛最终程序汇总

Java在算法竞赛中的技巧(蓝桥杯备赛总结) 前言:笔者在这段时间准备蓝桥杯竞赛,由于个人原因选择Java作为语言,刷题中也是不断感到Java有些语法还是不够方便(非常羡慕隔壁C++的STL…),不过有些常见的技巧/方法/模板,也是自己做了些总结,十分之不全面,比完赛会继续完善… !!!!!提交结果时记得检查有无不该加的头文件,主类名是否为Main!!!!!! 2.优化输入输出时间(快速IO模板): import java.io.*; import java.math.BigDecimal; import java.math.BigInteger 阅读详情

竞赛的历史信息地址如下

http://topic.youkuaiyun.com/u/20080623/14/23ab6317-1179-4c24-bb41-39b2d00697d5.html

 http://topic.youkuaiyun.com/u/20080624/11/55e5a350-d260-4a35-a02a-71b4c1795a00.html

源代码

package sort;

import java.util.Map;
import java.util.Random;
import java.util.TreeMap;

/**
 * 优快云 排序竞赛
 * 
 * @version 2008-06-25 17:31
 */
class Sort {
  static int MAX = 1000000;

  static int[] nums = new int[MAX];

  static Map map = new TreeMap();

  static long seed = 20080623;

  private static void init() {
    Random r = new Random(seed);
    for (int i = 0; i < MAX; i++) {
      nums[i] = r.nextInt(MAX);
    }
  }

  private static String showResult() {
    return nums[1] + " " + nums[MAX / 4] + " " + nums[MAX / 2] + " " + nums[MAX * 3 / 4] + " " + nums[MAX - 1];
  }

  public static void main(String[] args) {
    Random ran = new Random();
    for (int i = 1; i <= 1; i++) {
      seed = ran.nextInt(999999999);
      test();
    }
    for (String str : map.values()) {
      System.out.print(str);
    }
  }

  public static void test() {
    long begin;
    long end;
    //
    //
    init();
    begin = System.nanoTime();
    sort_sagezk2(nums);
    end = System.nanoTime();
    map.put((end - begin), String.format("%20s%15d %s/r/n", "sort_sagezk2=", (end - begin), showResult()));
    //
    //
    init();
    begin = System.nanoTime();
    sort_superdullwolf(nums);
    end = System.nanoTime();
    map.put((end - begin), String.format("%20s%15d %s/r/n", "sort_superdullwolf=", (end - begin), showResult()));
    //
    //
    init();
    begin = System.nanoTime();
    sort_john_sheep(nums);
    end = System.nanoTime();
    map.put((end - begin), String.format("%20s%15d %s/r/n", "sort_john_sheep=", (end - begin), showResult()));
    //
    //
    init();
    begin = System.nanoTime();
    quickSort_B_Lee(nums, 0, MAX - 1);
    end = System.nanoTime();
    map.put((end - begin), String.format("%20s%15d %s/r/n", "sort_B_Lee2=", (end - begin), showResult()));
    //
    //
    // init();
    // begin = System.nanoTime();
    // sort_OXFORD_216(nums, 0, nums.length - 1); 在1000万的测试中发现数据错误
    // end = System.nanoTime();
    // map.put((end - begin), String.format("%20s%15d %s/r/n", "sort_OXFORD_216=", (end - begin), showResult()));
    //
    //
    init();
    begin = System.nanoTime();
    qSort_hmsuccess(0, MAX - 1);
    end = System.nanoTime();
    map.put((end - begin), String.format("%20s%15d %s/r/n", "qSor_hmsuccess=", (end - begin), showResult()));
    //
    //
    init();
    begin = System.nanoTime();
    sort_joneyonly3(nums);
    end = System.nanoTime();
    map.put((end - begin), String.format("%20s%15d %s/r/n", "sort_joneyonly3=", (end - begin), showResult()));
    //
    //
    init();
    begin = System.nanoTime();
    sort_J_Factory(nums);
    end = System.nanoTime();
    map.put((end - begin), String.format("%20s%15d %s/r/n", "sort_J_Factory=", (end - begin), showResult()));
    //
    //
    init();
    begin = System.nanoTime();
    sort_talent_marquis(nums);
    end = System.nanoTime();
    map.put((end - begin), String.format("%20s%15d %s/r/n", "sort_talent_marquis=", (end - begin), showResult()));
    //
    //
    init();
    begin = System.nanoTime();
    sort_lwouyang(nums);
    end = System.nanoTime();
    map.put((end - begin), String.format("%20s%15d %s/r/n", "sort_lwouyang=", (end - begin), showResult()));
    //
    //
    init();
    begin = System.nanoTime();
    sort_roofalison(nums);
    end = System.nanoTime();
    map.put((end - begin), String.format("%20s%15d %s/r/n", "sort_roofalison=", (end - begin), showResult()));
    //
    //
    init();
    begin = System.nanoTime();
    sort_scf37(nums);
    end = System.nanoTime();
    map.put((end - begin), String.format("%20s%15d %s/r/n", "sort_scf37=", (end - begin), showResult()));
  }

  public static void quickSort_B_Lee(int[] array, int star, int end) {
    // 记录原来的位置
    int priStar = star;
    int priEnd = end;
    if (star == end) {// 只有一个元素
      return;
    } else {
      int key = array[star]; // 以第一个元素作为关键数据
      int tem = 0; // 交换数据时用所的中间变量
      while (star < end) {
        while (star < end && array[end] >= key) {// 从最后一个元素开始找第一个比key小的元素
          end--;
        }
        if (star != end) {// 两都不等,说明找到,交换
          tem = array[star];
          array[star] = array[end];
          array[end] = tem;
        }
        while (star < end && array[star] <= key) {// 从第一个元素开始找第一个比key大的元素
          star++;
        }
        if (star != end) {// 两都不等,说明找到,交换
          tem = array[star];
          array[star] = array[end];
          array[end] = tem;
        }
      }// while
      if (priStar < star - 1) { // 如果关键值不是处于第一位,则对关键值前一部分进行递归排序
        quickSort_B_Lee(array, priStar, star - 1);
      }
      if (priEnd > end + 1) { // 如果关键值不是牌最后一位,则对关键值后面的部分进行递归排序
        quickSort_B_Lee(array, end + 1, priEnd);
      }
    }
  }

  public static int[] sort_OXFORD_216(int[] nums, int left, int right) {
    int i, j;
    int middle, Temp;
    i = left;
    j = right;
    middle = nums[(i + j) / 2];
    do {
      if ((nums[i] < middle) && (i < right))
        i++;
      if ((nums[j] > middle) && (j > left))
        j--;
      else if (nums[i] >= nums[j]) {
        Temp = nums[i];
        nums[i] = nums[j];
        nums[j] = Temp;
        i++;
        j--;
      }
    } while (i <= j);
    if (left < j)
      sort_OXFORD_216(nums, left, j);
    if (right > i)
      sort_OXFORD_216(nums, i, right);
    return nums;
  }

  static void qSort_hmsuccess(int begin, int end) {
    if (begin < end) {
      int q = partition_hmsuccess(begin, end);
      qSort_hmsuccess(begin, q - 1);
      qSort_hmsuccess(q + 1, end);
    }
  }

  static int partition_hmsuccess(int begin, int end) {
    int i = begin;
    int j = end + 1;
    int firstdata = nums[begin];
    while (true) {
      while (i < end && (nums[++i] < firstdata))
        ;
      while (j > 0 && (nums[--j] > firstdata))
        ;
      if (i >= j) {
        break;
      }
      int temp;
      temp = nums[i];
      nums[i] = nums[j];
      nums[j] = temp;
    }
    nums[begin] = nums[j];
    nums[j] = firstdata;
    return j;
  }

  public static int[] sort_joneyonly(int[] nums) {
    MaxHeap_joneyonly h = new MaxHeap_joneyonly();
    h.init(nums);
    for (int i = 0; i < nums.length; i++)
      h.remove();
    System.arraycopy(h.queue, 1, nums, 0, nums.length);
    return nums;
  }

  private static class MaxHeap_joneyonly {
    void init(int[] data) {
      this.queue = new int[data.length + 1];
      for (int i = 0; i < data.length; i++) {
        queue[++size] = data[i];
        fixUp(size);
      }
    }

    private int size = 0;

    private int[] queue;

    public int get() {
      return queue[1];
    }

    public void remove() {
      swap_joneyonly(queue, 1, size--);
      fixDown(1);
    }

    private void fixDown(int k) {
      int j;
      while ((j = k << 1) <= size) {
        if (j < size && queue[j] < queue[j + 1])
          j++;
        if (queue[k] > queue[j])
          break;
        swap_joneyonly(queue, j, k);
        k = j;
      }
    }

    private void fixUp(int k) {
      while (k > 1) {
        int j = k >> 1;
        if (queue[j] > queue[k])
          break;
        swap_joneyonly(queue, j, k);
        k = j;
      }
    }
  }

  public static void swap_joneyonly(int[] data, int i, int j) {
    int temp = data[i];
    data[i] = data[j];
    data[j] = temp;
  }

  private static int MAX_STACK_SIZE_joneyonly3 = 4096;

  private static int THRESHOLD_joneyonly3 = 10;

  public static int[] sort_joneyonly3(int[] data) {
    int[] stack = new int[MAX_STACK_SIZE_joneyonly3];
    int top = -1;
    int pivot;
    int pivotIndex, l, r;
    stack[++top] = 0;
    stack[++top] = data.length - 1;
    while (top > 0) {
      int j = stack[top--];
      int i = stack[top--];
      pivotIndex = (i + j) / 2;
      pivot = data[pivotIndex];
      swap_joneyonly3(data, pivotIndex, j);
      l = i - 1;
      r = j;
      do {
        while (data[++l] < pivot)
          ;
        while ((r != 0) && (data[--r] > pivot))
          ;
        swap_joneyonly3(data, l, r);
      } while (l < r);
      swap_joneyonly3(data, l, r);
      swap_joneyonly3(data, l, j);
      if ((l - i) > THRESHOLD_joneyonly3) {
        stack[++top] = i;
        stack[++top] = l - 1;
      }
      if ((j - l) > THRESHOLD_joneyonly3) {
        stack[++top] = l + 1;
        stack[++top] = j;
      }
    }
    insertSort_joneyonly3(data);
    return data;
  }

  private static void insertSort_joneyonly3(int[] data) {
    for (int i = 1; i < data.length; i++) {
      for (int j = i; (j > 0) && (data[j] < data[j - 1]); j--) {
        swap_joneyonly3(data, j, j - 1);
      }
    }
  }

  public static void swap_joneyonly3(int[] data, int i, int j) {
    int temp = data[i];
    data[i] = data[j];
    data[j] = temp;
  }

  public static int[] sort_john_sheep(int[] nums) {
    int max = getMax_john_sheep(nums) + 1;
    int[] temp = new int[max];
    for (int i : nums) {
      temp[i]++;
    }
    int pos = 0;
    for (int i = 0; i < max; i++) {
      if (temp[i] > 0) {
        for (int l = 0; l < temp[i]; l++)
          nums[pos++] = i;
      }
    }
    return nums;
  }

  private static int getMax_john_sheep(int[] data) {
    int max = 0;
    for (int i : data) {
      if (i > max) {
        max = i;
      }
    }
    return max;
  }

  public static int[] sort_J_Factory(int[] nums) {
    // 您的排序代码放在这里啦
    quickSort_J_Factory(nums, 0, nums.length - 1);
    return nums;
  }

  private static int partity_J_Factory(int array[], int first, int last) {
    int s1last = first;
    int start = first;
    int poitle = array[first++];
    int temp;
    while (first - 1 < last) {
      if (poitle <= array[first]) {
        first++;
      } else {
        temp = array[first];
        array[first] = array[s1last + 1];
        array[++s1last] = temp;
        first++;
      }
    }
    if (s1last >= 0) {
      temp = array[s1last];
      array[s1last] = poitle;
      array[start] = temp;
    }
    return s1last;
  }

  public static void quickSort_J_Factory(int[] array, int first, int last) {
    if (first < last) {
      int poite = partity_J_Factory(array, first, last);
      quickSort_J_Factory(array, first, poite - 1);
      quickSort_J_Factory(array, poite + 1, last);
    }
  }

  public static int[] sort_sagezk(int[] nums) {
    // 您的排序代码放在这里啦
    quickSort_sagezk(nums, 0, nums.length - 1);
    return nums;
  }

  private static void quickSort_sagezk(int[] a, int lo, int hi) {
    int lot = lo;
    int hit = hi;
    int mid;
    if (hi > lo) {
      mid = a[(lo + hi) / 2];
      while (lot <= hit) {
        while ((lot < hi) && (a[lot] < mid))
          ++lot;
        while ((hit > lo) && (a[hit] > mid))
          --hit;
        if (lot <= hit) {
          int t = a[lot];
          a[lot] = a[hit];
          a[hit] = t;
          ++lot;
          --hit;
        }
      }
      if (lo < hit)
        quickSort_sagezk(a, lo, hit);
      if (lot < hi)
        quickSort_sagezk(a, lot, hi);
    }
  }

  private static int[] resultData_talent_marquis;

  public static int[] sort_talent_marquis(int[] numsP) {
    // 您的排序代码放在这里啦
    resultData_talent_marquis = new int[nums.length];
    countingSort_talent_marquis(nums, resultData_talent_marquis, getMaxInt_talent_marquis(nums));
    nums = resultData_talent_marquis;
    return nums;
  }

  private static int getMaxInt_talent_marquis(int[] data) {
    int max = 0;
    for (int i : data) {
      if (i > max) {
        max = i;
      }
    }
    return max;
  }

  private static void countingSort_talent_marquis(int[] oriData, int[] resultData, int k) {
    int[] assistData = new int[k + 1];
    for (int i = 0; i < assistData.length; i++) {
      assistData[i] = 0;
    }
    for (int j = 0; j < oriData.length; j++) {
      assistData[oriData[j]] = assistData[oriData[j]] + 1;
    }
    for (int i = 1; i < assistData.length; i++) {
      assistData[i] = assistData[i] + assistData[i - 1];
    }
    for (int j = oriData.length - 1; j >= 0; j--) {
      resultData[assistData[oriData[j]] - 1] = oriData[j];
      assistData[oriData[j]] = assistData[oriData[j]] - 1;
    }
  }

  public static int[] sort_lwouyang(int[] nums) {
    int max = MAX / 2; // 不会猜不中吧?! 真猜不中的话立马去买彩票!! ^_^
    int[] temp = new int[nums.length];
    for (int i : nums) {
      temp[i]++;
      if (i > max)
        max = i;
    }
    int pos = 0;
    for (int i = 0; i <= max; i++)
      for (int l = 0; l < temp[i]; l++)
        nums[pos++] = i;
    return nums;
  }

  public static int[] sort_roofalison(int[] nums) {
    // 您的排序代码放在这里啦
    int[] flag = new int[nums.length + 1];
    for (int i = 0; i < nums.length; ++i)
      ++flag[nums[i]];
    int ct = 0;
    for (int i = 0; i < nums.length; ++i)
      while (flag[i]-- > 0)
        nums[ct++] = i;
    return nums;
  }

  public static int[] sort_scf37(int[] nums) {
    int max = nums.length;
    int i, j;
    int[] temp = new int[max];
    for (i = 0; i < max;) {
      temp[nums[i++]]++;
    }
    int pos = 0;
    for (i = 0; i < max; ++i) {
      for (j = 0; j < temp[i]; ++j) {
        nums[pos++] = i;
      }
    }
    return nums;
  }

  public static int[] sort_sagezk2(int[] nums) {
    final int LEN = nums.length;
    int i, j, t, p;
    int[] temp = new int[LEN];
    for (i = 0; i < LEN;) {
      temp[nums[i++]]++;
    }
    for (i = 0, p = 0; i < LEN; ++i) {
      if ((t = temp[i]) == 0)
        continue;
      for (j = 0; j < t; ++j) {
        nums[p++] = i;
      }
    }
    return nums;
  }

  public static void sort_superdullwolf(int[] a) {
    int MaxRange = a.length;
    int[] p = new int[MaxRange + 1];
    // for (int i = 0; i <= MaxRange; i++) {
    // p[i] = 0;
    // }
    for (int i = 0; i < MaxRange; i++) {
      p[a[i]]++;
    }
    for (int i = 0, j = 0; i <= MaxRange; i++) {
      while (p[i] > 0) {
        a[j++] = i;
        p[i]--;
      }
    }
  }
}

竞赛结果

根据综合表现,决定奖励人员如下

1talent_marquis 许多人借鉴了他的算法,且最受大家尊敬,而且提出了更好的建议 http://topic.youkuaiyun.com/u/20080624/12/1f8a6a2d-0e2a-4cc6-a6bf-747de44626f8.html

2 john_sheeping 算法最稳定,且没有漏洞,而且非常活跃

以上二人分享600专家分,决定每人300,不再排名

3 SageZk

4 scf37

5 sort_superdullwolf

以上三名每人分得100专家分。







<script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script>
算法竞赛入门经典经典例题及习题题解 Github仓库 有些例题没找到完全相同的题目,找了类似的。 文章目录算法竞赛入门经典第一版第5章 基础题目选解5.1 字符串5.2 高精度计算5.3 排序与检索5.4 数学基础第六章 数据结构基础6.1 栈和队列6.2 链表6.3 二叉树6.4 图第七章 暴力求解法7.1 简单枚举7.2 枚举排列7.3 子集生成7.4 回溯法7.5 隐式树的遍历第八章 高效算法设计8.1 算法初步分析8.2 再... 阅读详情

相关推荐

ACM国际大学生程序设计竞赛入门指南与实战资源

htmltable {th, td {th {pre {简介:ACM(国际大学生程序设计竞赛)是提升编程能力、算法思维和团队协作的重要平台。本“acm入门资料”压缩包涵盖全面的学习资源,帮助初学者系统掌握C++、Java、Python等编程语言基础,深入理解排序、搜索、图论、动态规划等核心算法,熟练运用数组、链表、栈队列、树、图等数据结构,并通过Codeforces、LeetCode等平台进行实战训练。

weixin_42593549的博客 1245

算法竞赛进阶指南(基本算法):排序

算法竞赛进阶指南(基本算法):排序 acwing例题详解,(电影, 货仓选址,动态中位数超,快速排序)

sdfzhqy的博客 858

河南省第二届ACM程序设计竞赛真题解析

ACM国际大学生程序设计竞赛(ACM International Collegiate Programming Contest,简称ACM-ICPC)是全球最具影响力的大学生编程赛事之一。起源于1970年,最初由美国计算机协会(ACM)发起,旨在通过团队协作解决复杂算法问题,提升大学生的编程能力与逻辑思维能力。随着赛事影响力的扩大,越来越多的国家和高校积极参与,中国自1990年代起逐步引入并推广该赛事,目前已成为国内高校计算机专业人才培养的重要平台之一。

weixin_34885746的博客 1220

第一届排序算法性能大赛(上万字激烈解说)

写在前面 最近学到了一些重要的排序,并且取巧地测了一下各种排序算法在不同的算法实现、优化以及递归和非递归下的运行速度,想着写篇文章记录学习成果,同时分享给大家。 本文一共提及了以下几种常用到的排序,其他排序使用场景较少,便没有提及。 并且本文的全部代码实现均为通俗易懂的c语言,希望能够得到大家的认可和支持,如果觉得本文不错的话,欢迎三连哦。好了,接下来就是文章本章了。 文章目录一、必备排序常识 一、必备排序常识 稳定性:在原序列中,r[i]=r[j],且r[i]在r[j]之前,而在排序后的序列中,

Welcome to my blog. 1万+

抓包工具(五)2025版 Burp Suite Professional的下载、安装、使用

抓包工具(五)2025版 Burp Suite Professional的下载、安装、使用

ACGkaka的博客 2万+

Win上通过Jconsole查看Java程序资源占用情况(教程总结,一篇就够了)

JConsole 是一个内置 Java 性能分析器,Java 5开始 引入了 JConsole。可以从命令行或在 GUI shell 中运行。您可以轻松地使用 JConsole来监控 Java 应用程序性能和跟踪 Java 中的代码。Jconsole工具查看程序的资源占用请求。安装jdk时bin目录有jconsole.exe工具,或者通过 Win + R,输入jconsole.exe启动jconsole( 可以从命令行直接输入jconsole。

明生的博客 6242

java 编程 之【评分系统】可以计算平均成绩和最烂评委

/*** * @author: Kevin* @date :2011-07-18* @function: to mark 0-10 point to Players,and the result is delete the highest * and the lowest, at last reserve the average marks. */package com.Homework; i...

kanwoerzi 496

Centos7网络配置(设置固定ip)

刚安装完系统,有的人尤其没有勾选自动网络配置的情况下,是访问不了外网的,本机也连不通虚拟机。或者现在有的是动态ip,几次之后启动ip地址就变了,会导致其他软件或程序之前连接配置要重新更改,很麻烦,下面讲解一下如何配置网络,如何设置成固定ip。

个人笔记git:https://gitee.com/tlangp/note.git 8055

完整java实现外部排序

外部排序指的是大文件的排序,即待排序的记录存储在外存储器上,待排序的文件无法一次装入内存,需要在内存和外部存储器之间进行多次数据交换,以达到排序整个文件的目的。选自百度百科。 第一步:      首先我们先来创建一个大号的文件。 public class Sort {  public static void main(String[] args) throws IOException{ ...

天道酬勤 1692

【算法实战】Keystone变换:从原理到MATLAB实现的距离走动校正

本文深入解析Keystone变换在雷达信号处理中的距离走动校正应用,从原理到MATLAB实现全面讲解。通过三种实现方法(DFT+IFFT、Sinc插值、Chirp-Z变换)的对比分析,结合实战案例展示如何有效解决高速目标导致的距离单元跨越问题,提升多普勒频谱聚焦质量。

weixin_29055699的博客 295

Unity3D赛车游戏+脚本基础

本章主要介绍Unity的基础开发流程以及涉及到的概念。这个过程需要我们学会编写一些游戏脚本,在这讲的过程中我们会完成一个赛车小游戏,因此,在讲述这些基本概念和流程的时候,会同时涉及到一点脚本的开发基础.在游戏,电影和动画中,都有一个渲染的帧率,电影是24帧/s,游戏大概是30帧/s(当然也有60帧/s的)。在unity里面1秒钟,Update方法执行了30次。1秒钟有30帧,帧与帧之所消耗的时间是不一样的,那么我如何知道上一帧用了多少时间?Time.deltaTime就是为了解决这个问题。

m0_58367586的博客 7660

算法竞赛中的JAVA使用笔记

输入与输出 基本输入 输入挂 输出 控制台输入输出重定向到文件 大整数与高精度 大整数BigInteger 高精度BigDecima 字符串与进制转换 字符串基本操作 进制转换 排序 默认排序 实现Comparator接口自定义比较器 用lambda自定义比较器仅 JAVA8 以上支持 CSTL中部分数据结构在JAVA中的用法

hnshhslsh的专栏 4413

飞书文档API深度使用指南:如何用n8n社区节点绕过HTTP Request的复杂配置

本文详细解析了如何利用n8n社区节点简化飞书文档API的集成过程,绕过复杂的HTTP Request配置。通过n8n-feishu-lite社区节点,开发者可以轻松实现飞书文档的创建、编辑和查询操作,大幅提升自动化工作流的效率。文章还提供了高级应用场景和性能优化建议,帮助开发者更好地利用飞书开放平台的API功能。

weixin_29227585的博客 84

蓝桥杯JAVA版答案汇总

蓝桥杯JAVA版答案汇总

R.I.P Kobe Bryant 1606

智能解决装箱问题:使用优化算法实现高效包装

装箱问题(Bin Packing Problem)是组合优化领域中的一个经典问题,主要涉及如何将一系列对象高效地装入有限数量的容器(或“箱”)中,同时满足特定的约束条件。这个问题的目标是最小化所需使用的箱子数量或者最大化箱子的装载效率,以减少空间或资源的浪费。

MindOpt_003的博客 5551

5G射频到底是啥?方案怎么搭?工作流程、SAW选型、PA选型一口气讲透(工程师秒懂版)

很多人一提 5G 射频,脑子里先冒出来的是几个零件名:👉 PA👉 LNA👉 SAW👉 天线👉 开关但真正做方案时,这些东西不是一堆分立器件,而是一条完整的“信号流水线”。更准确地说,。Qualcomm 对 RFFE 的定义就是“把信息转换成可发送的射频信号,并把接收到的信号转换回有用信息”的那一整套组件。

weixin_43199439的博客 537

Java 在程序竞赛中的应用

主类名称必须 public class Main 方式命名 快读 可见,Java 的 Scanner 是基于正则表达式实现的,这意味着 Scanner 的效率 相当低。如果在蓝算法竞赛用 Scanner,会有很大一部分CPU时间会浪费在 Scanner 的正则解析上 Scanner 之所以复杂,主要在于它假定所有输入数据都是任意的、类型是不确定的,同时 Scanner 还要兼顾处理输入流,所以不得不使用正则表达式去进行处理。 由于算法竞赛的给定数据的类型都是已知的,我们可以直接使用 StringTokeni

qq_45560445的博客 113

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

Java语言的编程竞赛

每次参赛后,应对自己的表现进行总结,分析成功的地方和需要改进的地方。尤其是遇到错误或未完成的问题,应该深入分析原因,避免在以后相似的题目中重犯。Java编程竞赛不仅是对编程能力的挑战,更是对思维方式、团队协作和坚持不懈精神的考验。在参与竞赛的过程中,我们不仅能够收获无尽的知识和经验,更能够培养出积极向上的心态,迎接未来的挑战。希望更多的学习者能够迈入这个充满激情与智慧的竞技舞台,共同为编程的未来贡献自己的力量。无论是参与者还是组织者,都应该为推动编程教育的发展而努力,使更多的人体会到编程的乐趣与魅力。

2501_91048845的博客 1697

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

2446---最终排名(java版)

2446—最终排名 第四届山东理工大学ACM网络编程擂台赛比赛完后需要产生一个最终排名,排名按照题数多少来决定。但是有太多的队伍参与,手动计算排名已经不能满足比赛的需求。现在有一份名单记录各个队伍的ID和做出的题目数,需要你写一个程序,产生最终的排名。 为了简化题目,这里的排名规则为:做出题目数量多的队伍排在前面,如果题数相等,保持输入时的相对顺序不要改变。 Input 第一行包含一个正整数T( ...

zzzbeauty的博客 253

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

备战程序设计算法竞赛java组

第一节线性代数与矩阵运算&数论。11平衡树-FHQ_Treap。2整除&同余&GCD&LCM。1条件表达式和逻辑表达式。5二维费用背包&分组背包。第一节KMP&字符串哈希。5素数朴素判定&埃氏筛法。第六节任意多边形面积计算。第二节Manacher。11欧拉函数&欧拉降幂。10平衡树-splay。第二节二维计算几何基础。1 java开发环境。2 java输入输出。3常量、变量与运算符。第六节类的定义与使用。第二节基础的树上问题。5线段树-标记永久化。

2404_82622750的博客 457

第三届传智杯程序设计赛B组题解Java版

第三届传智杯程序设计赛B组题解Java版 文章目录第三届传智杯程序设计赛B组题解Java版A - 课程报名B - 期末考试成绩C - 志愿者D - 终端E - 运气 A - 课程报名 import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner in = new Scanner(System.in); int n = in.nextInt

千里之行,始于足下 2936

ACM程序设计之马拉松竞赛

ACM程序设计之马拉松竞赛 时间限制(普通/Java):1000MS/3000MS          运行内存限制:65536KByte 总提交:1026            测试通过:228 描述 校ACM协会近四个月举行了为期100天ACM程序设计之马拉松竞赛,竞赛题总数为1000,同学们反响热烈,先后有许多ACM程序设计竞赛爱好者报名,这些选手按报名时间从1开始先后编号,成

我的博客 906

[转载] 算法竞赛中的JAVA使用笔记

参考链接: Java中StringTokenizer类的示例| 1(构造函数) 算法竞赛中的JAVA使用笔记 算法竞赛中的JAVA使用笔记 输入与输出 基本输入输入挂输出控制台输入输出重定向到文件 大整数与高精度 大整数BigInteger高精度BigDecimal高精度开方 字符串与进制转换 字符串基本操作进制转换 排序 默认排序实现Comparator接口自定义比较器对自定义类的排序用lambda自定义比较器仅 JAVA8 以上...

ld909的博客 227

java+comparable+排序_Java使用Comparable解决排序问题

本文实例讲述了java使用comparable解决排序问题的方法。分享给大家供大家参考。具体实现方法如下:一次举重竞赛的比赛规则是:选手的成绩以成功举起的总重量来排序,举起总重量多的排在前面;当举起总重量相同时,按照体重来排序,体重轻的排在前面;要求程序读取数据文件作为输入,并按照上述规则排序后,打印出选手编号;数据文件说明如下:现有5名选手,其选手编号、成功举起的总重量及其体重如数据文件data...

weixin_36213943的博客 288
上一篇: 个人工作13年的一些人生真实领悟
下一篇: 浅谈学Java和学踢足球的相似性
老紫竹
博客等级 码龄19年 1万+粉丝 1252原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值