以下是自己做的一些北京大学poj的acm题目,刚刚开始做,做的有些水。不断更新中。
package cn.edu.szpku.poj;
import java.math.BigDecimal;
import java.util.Scanner;
public class _1001 {
public static void main(String[] args) {
Scanner cin = new Scanner(System.in);
while (cin.hasNextBigDecimal()) {
BigDecimal R = cin.nextBigDecimal();
int n = cin.nextInt();
R = R.pow(n);
String answer = R.stripTrailingZeros().toPlainString();
if (answer.startsWith("0."))
answer = answer.substring(1);
System.out.println(answer);
}
}
}
package cn.edu.szpku.poj;
import java.util.Iterator;
import java.util.Scanner;
import java.util.TreeMap;
public class _1002 {
public static void main(String[] args) {
Scanner cin = new Scanner(System.in);
int round = cin.nextInt();
String inputString = "";
String standardTelephoneNumber = "";
TreeMap<String,Integer> tm = new TreeMap<String,Integer>();
for(int i=0;i<round;i++){
StringBuffer sb = new StringBuffer();
inputString = cin.next();
char[] input_array = inputString.toCharArray();
for(int j=0;j<input_array.length;j++){
switch(input_array[j]){
case 'A': case 'B': case 'C':
sb.append('2');
break;
case 'D': case 'E': case 'F':
sb.append('3');
break;
case 'G': case 'H': case 'I':
sb.append('4');
break;
case 'J': case 'K': case 'L':
sb.append('5');
break;
case 'M': case 'N': case 'O':
sb.append('6');
break;
case 'P': case 'R': case 'S':
sb.append('7');
break;
case 'T': case 'U': case 'V':
sb.append('8');
break;
case 'W': case 'X': case 'Y':
sb.append('9');
break;
case '-':
break;
default:
sb.append(input_array[j]);
break;
}
}
standardTelephoneNumber = sb.insert(3, "-").toString();
if(tm.containsKey(standardTelephoneNumber)){
Integer value = tm.get(standardTelephoneNumber);
tm.put(standardTelephoneNumber, ++value);
}else{
tm.put(standardTelephoneNumber, 1);
}
}
Iterator<String> iter = tm.keySet().iterator();
boolean flag = false;
while(iter.hasNext()){
String key = iter.next();
int value = tm.get(key);
if(value != 1){
System.out.println(key + " " + value);
flag = true;
}
}
if(flag == false){
System.out.println("No duplicates.");
}
}
}
package cn.edu.szpku.poj;
import java.util.Scanner;
public class _1003 {
public static void main(String[] args) {
Scanner cin = new Scanner(System.in);
float input = 0f;
while(cin.hasNextFloat()){
int basicN = 2;
float sum = 0f;
float preSum = 0f;
input = cin.nextFloat();
if(input <= 0.00){
break;
}
else if(input <= 0.5 && input > 0.00){
System.out.println("1 card(s)");
}
else{
for(;;){
sum += 1.0 / basicN;
if(input - sum <= 0.00 && input - preSum > 0.00){
System.out.println(basicN-1 + " card(s)");
break;
}
++basicN;
preSum = sum;
}
}
}
}
}
package cn.edu.szpku.poj;
import java.text.DecimalFormat;
import java.util.Scanner;
public class _1004 {
public static void main(String[] args) {
Scanner cin = new Scanner(System.in);
float input = 0f;
float sum = 0f;
for(int i=0;i<12;i++){
input = cin.nextFloat();
sum += input;
}
DecimalFormat df = new DecimalFormat("#.00");
String output = df.format(sum / 12);
System.out.println("$"+output);
}
}
package cn.edu.szpku.poj;
import java.util.Scanner;
public class _1005 {
public static double calculateSqure(double x,double y){
double result = Math.PI * (x * x + y * y) / 2;
return result;
}
public static void main(String[] args) {
Scanner cin = new Scanner(System.in);
int n = 0;
n = cin.nextInt();
double X=0,Y=0;
int year = 0;
int num = 0;
for(int i=0;i<n;i++){
X = cin.nextDouble();
Y = cin.nextDouble();
//year = (int)(pku1005.calculateSqure(X, Y) / 50) + 1;
year = (int)Math.ceil(calculateSqure(X, Y) / 50);
System.out.println("Property "+ ++num +": This property will begin eroding in year "+year+".");
}
System.out.println("END OF OUTPUT.");
}
}
package cn.edu.szpku.poj;
import java.util.Scanner;
public class _1006 {
public static void main(String[] args) {
Scanner cin = new Scanner(System.in);
int p = 0, e = 0, i = 0, d = 0;
int count = 0;
while (cin.hasNextInt()) {
p = cin.nextInt();
e = cin.nextInt();
i = cin.nextInt();
d = cin.nextInt();
if (p == -1 && e == -1 && i == -1 && d == -1) {
break;
}
int result = (5544 * p + 14421 * e + 1288 * i - d + 21252) % 21252;
if (result == 0) {
result = 21252;
}
System.out.println("Case " + ++count
+ ": the next triple peak occurs in " + result + " days.");
}
}
}
package cn.edu.szpku.poj;
import java.util.Scanner;
/**
* 中国剩余定理
* @author Yuanbo Han
*
*/
public class _1006Util {
public static void main(String[] args) {
Scanner cin = new Scanner(System.in);
System.out.println("输入你要得到几个数据:");
int count = 0;
count = cin.nextInt();
int maxNum = 1006;
int result = 0;
//由于是pku的1006题目出来的想法,所以我暂时将最大的数据定为1006
//NUMS 是周期的数 MODS是余数.然后将分别输出NUMS[i]对应的数据
System.out.println("请分别输入你的数据:");
int[] NUMS = new int[count];
for(int i=0;i<count;i++){
NUMS[i] = cin.nextInt();
}
for(int j=0;j<count;j++){
int tempSum = 1;
for(int k=0;k<count;k++){
if(k != j){
tempSum *= NUMS[k];
}
}
for(int k=1;k<=maxNum;k++){
result = tempSum * k;
if(result % NUMS[j] == 1){
break;
}
}
System.out.println(NUMS[j]+"对应的数据是: "+result);
}
System.out.println("得到相应的数据之后,根据将所有的 NUMS[i] * MODS[i]相加,\n然后mod 所有的NUMS[i]相乘就得到了解");
}
}
package cn.edu.szpku.poj;
import java.util.Scanner;
public class _1007 {
public static void main(String[] args) {
Scanner cin = new Scanner(System.in);
int characterNum = 0;
int count = 0;
characterNum = cin.nextInt();
count = cin.nextInt();
int index = 0;
String[] input = new String[count];
int[] sumForEveryString = new int[count];
while(cin.hasNext()){
input[index] = cin.next();
char[] tempChar = input[index].toCharArray();
int tempSum = 0;
for(int i=0;i<characterNum;i++){
for(int j=i+1;j<characterNum;j++){
if(tempChar[i] > tempChar[j]){
++tempSum;
}
}
}
sumForEveryString[index] = tempSum;
++index;
if(index >= count){
break;
}
}
for(int i=0;i<count;i++){
int outputIndex = 0;//输出后将此位置设置为10000
for(int j=0;j<count;j++){
if(sumForEveryString[j] < sumForEveryString[outputIndex]){
outputIndex = j;
}
}
System.out.println(input[outputIndex]);
sumForEveryString[outputIndex] = 10000;
}
}
}
package cn.edu.szpku.poj;
import java.util.Scanner;
public class _1008 {
// 将19个月转换成整型数值
public static int convertMonthStringToInteger_Haab(String str) {
int value = 0;
if (str.equals("pop"))
value = 1;
else if (str.equals("no"))
value = 2;
else if (str.equals("zip"))
value = 3;
else if (str.equals("zotz"))
value = 4;
else if (str.equals("tzec"))
value = 5;
else if (str.equals("xul"))
value = 6;
else if (str.equals("yoxkin"))
value = 7;
else if (str.equals("mol"))
value = 8;
else if (str.equals("chen"))
value = 9;
else if (str.equals("yax"))
value = 10;
else if (str.equals("zac"))
value = 11;
else if (str.equals("ceh"))
value = 12;
else if (str.equals("mac"))
value = 13;
else if (str.equals("kankin"))
value = 14;
else if (str.equals("muan"))
value = 15;
else if (str.equals("pax"))
value = 16;
else if (str.equals("koyab"))
value = 17;
else if (str.equals("cumhu"))
value = 18;
else
value = 19;
return value;
}
// 将给定的月份转换成月份的名字
public static String convertMonthIntegerToString_Tzolkin(int month) {
String str = "";
if (month == 1)
str = "imix";
else if (month == 2)
str = "ik";
else if (month == 3)
str = "akbal";
else if (month == 4)
str = "kan";
else if (month == 5)
str = "chicchan";
else if (month == 6)
str = "cimi";
else if (month == 7)
str = "manik";
else if (month == 8)
str = "lamat";
else if (month == 9)
str = "muluk";
else if (month == 10)
str = "ok";
else if (month == 11)
str = "chuen";
else if (month == 12)
str = "eb";
else if (month == 13)
str = "ben";
else if (month == 14)
str = "ix";
else if (month == 15)
str = "mem";
else if (month == 16)
str = "cib";
else if (month == 17)
str = "caban";
else if (month == 18)
str = "eznab";
else if (month == 19)
str = "canac";
else if (month == 20)
str = "ahau";
return str;
}
public static int totalDay_Haab(int year, int month, int day) {
// 一年365天 每个月20天 共19个月 第19个月5天
// 第一天从 0. 1 0 开始 0. pop 0 (日. 月 年)
int totalDay = 0;
totalDay += year * 365;
totalDay += (month - 1) * 20;
totalDay += day + 1;
return totalDay;
}
public static int getNum_Tzolkin(int totalDay_Haab) {
int num_Tzolkin = (totalDay_Haab - getYear_Tzolkin(totalDay_Haab) * 260) % 13;
if (num_Tzolkin == 0) {
num_Tzolkin = 13;
}
return num_Tzolkin;
}
public static int getName_Tzolkin(int totalDay_Haab) {
int name_Tzolkin = 0;
name_Tzolkin = (totalDay_Haab - getYear_Tzolkin(totalDay_Haab) * 260) % 20;
if (name_Tzolkin == 0) {
name_Tzolkin = 20;
}
return name_Tzolkin;
}
public static int getYear_Tzolkin(int totalDay_Haab) {
int year_Tzolkin = (totalDay_Haab - 1) / 260;
return year_Tzolkin;
}
public static void main(String[] args) {
Scanner cin = new Scanner(System.in);
int num = cin.nextInt();
System.out.println(num);
for (int i = 0; i < num; i++) {
String temp1 = cin.next();
String temp2 = cin.next();
int yearHaab = cin.nextInt();
int dayHaab = Integer.parseInt(temp1.substring(0, temp1.length() - 1));
int monthHaab = convertMonthStringToInteger_Haab(temp2);
int totalDayHaab = totalDay_Haab(yearHaab, monthHaab, dayHaab);
int yearTzolkin = getYear_Tzolkin(totalDayHaab);
int intNameTzolkin = getName_Tzolkin(totalDayHaab);
int numTzolkin = getNum_Tzolkin(totalDayHaab);
String strNameTzolkin = convertMonthIntegerToString_Tzolkin(intNameTzolkin);
System.out.println(numTzolkin + " " + strNameTzolkin + " " + yearTzolkin);
}
}
}
分享到:
相关推荐
acm poj 比较详细的将poj的题目进行了分类,如dp,搜索,数据结构等等
【ACM POJ 题目分类】是针对ACM(国际大学生程序设计竞赛)中的问题进行的一种整理和归类,旨在帮助参赛者更有效地学习和准备比赛。这些题目涵盖了不同的算法和编程技巧,通常根据难度和涉及的主题进行划分。在POJ...
书中的每一章对应一个或多个POJ题目,每个章节都会详细剖析解题步骤,让你在实践中不断提升编程技能。无论你是ACM新手还是有一定经验的参赛者,都能从中找到适合自己的学习路径,提高解决问题的能力。 总的来说,...
pojACM题目分类,便于各类型同学分别做题有所参考
很多的POJ题目答案!1000~1008,1011~1014,1016,1017,1019,1028,1032,1045,1046,1047,1050,1061,1067,1068,1088,1102,1159,1163,1183,1207,1218,1226,1247,1256,1258,1298,1316,1323,...
### ACM POJ PKU 最全题目分类解析 #### 动态规划(DP) 在计算机科学领域,动态规划(Dynamic Programming, DP)是一种重要的算法思想,主要用于解决多阶段决策过程中的优化问题。它通过将原问题分解成相互重叠的...
这个压缩包“acm poj题目分类介绍 包含一个题解文档”显然是为了帮助参赛者更好地理解和解决这些题目,其中包含了一个题解文档,这将对学习ACM竞赛编程大有裨益。 首先,让我们了解一下ACM比赛的基本情况。ACM竞赛...
这份“POJ部分题目源代码”文档,便是对这些挑战的智慧结晶,它包含了作者在解决POJ题目过程中的思考和实践,对于想要深入ACM领域的学习者来说,是一份宝贵的参考资料。 首先,我们要理解ACM竞赛的基本规则。在规定...
【北大ACM_POJ_题目分类列表】是一个为了帮助ACM竞赛初学者系统性地进行训练而整理的资源。这个列表将北京大学在线评测系统POJ中的题目按照不同的算法和题型进行了分类,使得学习者可以更有针对性地提高自己的编程...
描述提到的“部分题目源代码(共77题) for acm,一年所做的”表明这是一份作者在过去一年里在POJ平台上完成的77个问题的源代码集合。这些源代码涵盖了不同的难度级别和主题,反映了作者在算法和编程技能上的学习和...
poj1035、poj3080等训练了串的操作,poj2388、poj2299等则涉及排序问题,poj2524、poj1611等是并查集的实例,poj3349、poj3274等展示了哈希表和二分查找,poj3253是哈夫曼树的题目,poj2442和poj1442则关于堆。...
POJ算法分类和题目推荐指南 本资源主要介绍了POJ(Online Judge)平台上各种算法分类和推荐题目,涵盖了动态规划、模拟、博弈等多种类型。以下是详细的知识点说明: 一、动态规划 动态规划是一种非常重要的算法...
标题 "ACM.zip_ACM_poj_poj3187_poj3669" 提供的信息表明,这个压缩包包含的是与ACM(国际大学生程序设计竞赛)相关的编程题目解决方案,具体是POJ(Programming Online Judge)平台上的两道题目,编号分别为poj3187...
【标题】"POJ题目简单分类(ACM)" 涉及的知识点: 【描述】中的"学习起来更系统,更清爽"暗示了本话题旨在为ACM竞赛初学者提供一个有条理的学习路径。 【标签】"POJ 分类"表明我们将探讨的是基于POJ(Problemset On...
学习ACM程序设计的朋友一定要看,这是训练必备的POJ ZOJ题目分类及解题思路
在ACM(国际大学生程序设计竞赛)中,POJ(Problemset Online Judge)是一个常用的在线评判系统,提供了大量的编程题目供参赛者练习和比赛。这些题目涵盖了多种算法和编程技巧,帮助参赛者提升解决问题的能力。根据提供...
在本篇文章中,我们将深入探讨POJ平台上的一系列经典图论问题,并根据提供的部分内容,总结出每个题目背后所涉及的核心算法和技术点。这些题目不仅考验了参赛者的逻辑思维能力,同时也对数据结构和算法的掌握提出了...
《POJ 1000 - 2000 部分题目 官方分类》 编程竞赛,特别是在线判题系统(如POJ,即Problem Online Judge)中的题目,是提升编程技能和算法理解的重要途径。POJ 1000 - 2000 是一个涵盖广泛的题目区间,包含了大量的...
### poj题目具体分类知识点 **一、主流算法** 1. **搜索** - 回溯:这是一种通过尝试解决子问题并回退来寻找问题解的方法。例如,在解决N皇后问题时,我们会尝试放置皇后,一旦发现冲突就撤销该决策。 2. **动态...
### ACM POJ 1002题解摘要 #### 题目背景与目标 本题目来自POJ(Pacific OpenJudge)平台上的一个经典问题,编号为1002。题目要求解决的是电话号码标准化的问题,即如何将各种形式的电话号码转换成统一的标准格式...