ACM:《王道机试指南》

前言:
这篇博客是对《王道——机试指南》一些题目汇总

第二章:经典入门

题目名称题目标签题目难度解题报告
EXCEL排序sort分情况排序2戳这里
字符串内排序sortstring排序2戳这里
日期差值日期类问题2戳这里
打印日期日期类问题2戳这里
叠筐排版类问题2戳这里
Repeater排版类问题4待解决
查找学生信息二分查找3戳这里
to fill or not to fill贪心4待解决

第三章:数据结构

题目名称题目标签题目难度解题报告
简单计算器双栈运用2戳这里
表达式求值DFS2戳这里
表达式求值双栈运用2待解决
二叉树遍历二叉树的建立与遍历2戳这里
二叉排序树建立建立二叉排序树2戳这里

第四章:数学问题

题目名称题目标签题目难度解题报告
大数进制转换进制转换,Java2戳这里
整除问题n!素数分解3戳这里
N的阶乘Java大数3int转string:string a = String.valueOf(i)
大数进制转换Java大数3String取位置i的数,s.atChar(i)
高精度浮点数加法Java高精度3戳这里
大数排序Java大数3Arrays.sort()

第五章:图论

题目名称题目标签题目难度解题报告
Head of a Gangmap+ 并查集3戳这里
I wanna go home最短路2戳这里

附录

附录一:字符串内排序

#include<iostream>
#include<algorithm>
using namespace std;

bool cmp(char a, char b)
{
    return a > b;
}
int main()
{
    string a;
    while(cin >> a)
    {
        sort(a.begin(), a.end(), cmp);
        cout << a << endl;
    }
    return 0;
}

附录二: JAVA大数进制转换

import java.util.*;
import java.math.*;

public class Main
{
	public static void main(String[] args)
	{
		Scanner input = new Scanner(System.in);
		BigInteger M, N;
		String number;
		M = input.nextBigInteger();
		N = input.nextBigInteger();
		number = input.next();
		
		//*************************//
		number = number.toLowerCase(); 
		//*************************//
		BigInteger D = new BigInteger("0");
		
		for(int i=0; i<number.length(); i++)
		{
			int x;
			//*************************//
			if(number.charAt(i) >= '0' && number.charAt(i) <= '9')
			//*************************//
				x = number.charAt(i) - '0';
			else
				x = number.charAt(i) - 'a' + 10;
			D = D.multiply(M).add(new BigInteger(String.valueOf(x)));	
		}
		
		
		String ans = "";
		while(D.compareTo(new BigInteger("0")) != 0)
		{
		    int x = D.mod(N).intValue();
		    if(x >= 10)
		    	ans = (char)(x-10+'a') + ans;
		    else
		    	ans = (char)(x+'0') + ans;
		    D = D.divide(N);
		}
		if(ans.length() == 0)
			ans = "0";
		System.out.println(ans);
		
		input.close();
	}
}

附录三:Java高精度浮点数求和

import java.util.*;
import java.math.*;

public class Main
{
	public static void main(String[] args)
	{
		Scanner input = new Scanner(System.in);
		BigDecimal a, b;
		while(input.hasNext())
		{
			a = input.nextBigDecimal();
			b = input.nextBigDecimal();
			System.out.println(a.add(b));
		}
		
		input.close();
	}
}

附录四:Java大数类排序

import java.util.*;
import java.math.*;
public class Main
{
	public static void main(String[] args)
	{
		Scanner input = new Scanner(System.in);
		
		int n;
		n = input.nextInt();
		BigInteger[] a = new BigInteger[n];
		for(int i=0; i<n; i++)
		{
			a[i] = input.nextBigInteger();
		}
		Arrays.sort(a);
		
		for(int i=0; i<n; i++)
			System.out.println(a[i]);
		
		input.close();
	}
}
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值