写算法遇到的一些小问题
好吧好吧好好努力吧
这个作者很懒,什么都没留下…
展开
-
数据结构---线段树
一、目标:1.如何快速的查询出下列数组arr[2,5]的和 2。以及更新arr[4]为6。 用普通的方法查询的复杂度为O(n),更新的复杂度为O(1)。 这时候我们可以用线段树来快速完成这些操作,复杂度为logn。二、内容:如何创建,查询,更新线段树。public class Qur...原创 2019-07-23 16:53:13 · 89 阅读 · 0 评论 -
StreamTokenizer类与BufferReader类的使用。
利用Scanner类进行输入时正常情况下都是是够用。不过当输入量和输出量太大的时候(达到百万到千万),那么这种输入方式效率就很低。这时候可以用StreamTokenizer类来输入基本数据类型,如int,double,float boolean short long byte(只能这七种,其他不行,例如char,String)用法如下:import java.io.*;...原创 2019-07-19 11:41:49 · 1082 阅读 · 2 评论 -
Java大整数BigInteger
本文目标可以使用BigInteger操作大整数可以使用BigDecimal指定小数的保留位数基础知识对于二进制来说,最高位代表正负号,-0表示-128,+0表示032位系统int型4个字节:-(2的31次方) ~ (2的31次方) 减 1最大负数:10000000 00000000 00000000 00000000最大正数:01111111 11111111 11111111 ...转载 2019-07-19 18:50:27 · 314 阅读 · 0 评论 -
Compareable接口的用法
问题:什么时候返回1,-1,0?举个例子说明: class Node2 implements Comparable<Node2>{ double w,p; public int compareTo(Node2 o) { double v=this.p/this.w; double b=(double)o.p/o.w; if(v>b) return...原创 2019-08-02 16:31:14 · 759 阅读 · 0 评论 -
控制输出位数
代码:import java.util.Scanner;public class fvghjwedv {public static void main(String[] args) { Scanner in=new Scanner(System.in); double d=in.nextDouble(); System.out.printf("%.2f",d); System....原创 2019-08-02 18:00:35 · 516 阅读 · 0 评论 -
卡特兰数(模板公式) buy the ticket
首先了解一下卡特兰数:概念:卡特兰数是一种经典的组合数,经常出现在各种计算中,其前几项为 : 1, 2, 5, 14, 42, 132, 429, 1430, 4862, 16796, 58786, 208012, 742900, 2674440, 9694845, 35357670, 129644790, 477638700, 1767263190, 6564120420, 24466267...原创 2019-07-25 18:29:07 · 272 阅读 · 0 评论 -
||连接符在if语句中的使用。
if语句中使用||连接符的话,假如第一个条件成立,就不会去判断第二个条件是否成立。例如:#include"stdio.h"int A(); int main(){ int a,b,c; scanf("%d",&a); if(a==3||A()) { printf("%d",88); } } int A(){ printf("%d",33...原创 2019-07-28 13:23:35 · 2115 阅读 · 0 评论