acm
文章平均质量分 50
iteye_2574
这个作者很懒,什么都没留下…
展开
-
uva 591 - Box of Bricks
这题比较简单,加和求出平均数,然后多余平均数的砖块数量和就是最少要移动的。 /* * uva591.cpp * * Created on: 2013-4-17 * Author: kevinjiang */#include<cstdio>int bricks[55];int main() { //setbuf(stdou...原创 2013-04-17 16:35:50 · 85 阅读 · 0 评论 -
pat 1018. Public Bike Management (30)
链接:http://pat.zju.edu.cn/contests/pat-a-practise/1018 题意(转biaobiaoqi):以杭州的公用自行车站点管理为背景。每个站点是一个节点,每个节点上最多停放 Cmax 辆自行车,Cmax/2 为节点的最佳状态。不同节点间距离不同,整个构成了一张带权无向图。要求从起始点(公用自行车管理中心)出发,去目的地维护目的地节点的车辆状态,如...原创 2014-02-27 22:59:40 · 126 阅读 · 0 评论 -
pat 1019. General Palindromic Number (20)
链接:http://pat.zju.edu.cn/contests/pat-a-practise/1019 题意:给定一个十进制数和一个进制,判断该数字在该进制下是否为回文。 分析:简单的数字进制处理。 #include<stdio.h>int numStr[100];int idx;int palindrome(int num,int ...原创 2014-02-27 22:58:52 · 103 阅读 · 0 评论 -
pat 1020. Tree Traversals (25)
链接:http://pat.zju.edu.cn/contests/pat-a-practise/1020 题意:给定二叉树的后序遍历和中序遍历,求层序遍历。 分析:根据后续遍历和中序遍历,可以递归的构建树,建好树之后利用queue层序遍历。 #include<stdio.h>#include<stdlib.h>#include<s...原创 2014-02-27 22:58:32 · 87 阅读 · 0 评论 -
1022. Digital Library (30)
链接:http://pat.zju.edu.cn/contests/pat-a-practise/1022 题意:给定 N (<=10000) 本书的信息,包括 7 位 ID,最多 80 字符的书名,最多 80 字符的作者名, 多个最多 10 字符的关键词,最多 80 字符的出版商和属于 [1000, 3000]的出版时间。 另给出 M (<=1000) 的查询请求,按照查...原创 2014-02-27 22:58:13 · 90 阅读 · 0 评论 -
pat 1011. World Cup Betting (20)
链接:http://pat.zju.edu.cn/contests/pat-a-practise/1011 题意:给定数据,找到每行的最大值根据公式计算结果。 分析:简单模拟题目。 #include<stdio.h>double bigger(double a, double b) { if (a > b) return a; e...原创 2014-02-25 13:56:03 · 87 阅读 · 0 评论 -
pat 1009. Product of Polynomials (25)
链接:http://pat.zju.edu.cn/contests/pat-a-practise/1009 题意:计算多项式的乘积。 分析:基于编程方便,还是采用数组的方式来实现。 #include<stdio.h>typedef struct Poly { int exp; double coe;} Poly;Poly a[10...原创 2014-02-25 13:55:48 · 88 阅读 · 0 评论 -
pat 1008. Elevator (20)
链接:http://pat.zju.edu.cn/contests/pat-a-practise/1008 题意:给出楼层序列计算电梯运行时间。 分析:简单模拟题。 #include<stdio.h>int main() { int n; int count = 0; int cur = 0; int tmp; scanf("%d...原创 2014-02-25 13:55:32 · 93 阅读 · 0 评论 -
pat 1007. Maximum Subsequence Sum (25)
链接:http://pat.zju.edu.cn/contests/pat-a-practise/1007 题意:经典的最大连续子串问题。 分析:采用最优的O(N) 算法。 #include<stdio.h>int seq[10005];int main() {// freopen("in.txt", "r", stdin); int...原创 2014-02-25 13:55:20 · 79 阅读 · 0 评论 -
pat 1006. Sign In and Sign Out (25)
链接:http://pat.zju.edu.cn/contests/pat-a-practise/1006 题意:分析每个人到达和离开实验室的时间,找到最早来和最晚走的人。 分析:简单的一次遍历寻找最大最小值,我直接利用字符串比较时间的大小,也可以读入int 转化成分钟处理。 #include<stdio.h>#include<string.h&g...原创 2014-02-25 13:54:52 · 134 阅读 · 0 评论 -
pat 1005. Spell It Right (20)
链接:http://pat.zju.edu.cn/contests/pat-a-practise/1005 题意:计算一个大数每位数字相加之和,结果输出每位数字对应的英文。 分析:结果输出利用hash的思想。 #include<stdio.h>int arr[20];int idx = 0;char str[10][10] = { "zer...原创 2014-02-24 15:47:54 · 105 阅读 · 0 评论 -
pat 1004. Counting Leaves (30)
链接: http://pat.zju.edu.cn/contests/pat-a-practise/1004 题意:统计一颗给定树的每层的叶子节点数目。 分析:基于节点数据量比较小,可以简单地利用链接矩阵的方式存储树,然后利用dfs遍历,遍历的时候记录深度变量用于统计。 #include<stdio.h>int mat[105][105];...原创 2014-02-24 15:41:17 · 95 阅读 · 0 评论 -
pat 1003. Emergency (25)
链接:http://pat.zju.edu.cn/contests/pat-a-practise/1003 题意:计算两个点之间的加权最短路径,若有多条最短路径,选取沿途节点权重和最大的。 分析:利用Dijkstra算法求出最短路径,然后利用dfs遍历选取路径最短并且节点权重最大。 #include<stdio.h>#include<stdlib....原创 2014-02-24 15:28:28 · 88 阅读 · 0 评论 -
uva 465 - Overflow
题目地址:http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=97&page=show_problem&problem=406 用java的大数类处理,提交WA,未找到原因,好蛋疼。。。import java.math.BigInteger;i...原创 2013-04-08 16:11:45 · 93 阅读 · 0 评论 -
uva 340 - Master-Mind Hints
题目链接:http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=98&page=show_problem&problem=276 C++ AC。先遍历对比一遍得出strong的数量,然后对每个数字一次遍历weak的情况,一旦match之后都置为-1,以避...原创 2013-04-10 14:14:25 · 84 阅读 · 0 评论 -
uva 10025 - The ? 1 ? 2 ? ... ? n = k problem
首先找到前n项和S刚好比k大的位置,然后判断和S与k的差值,如果是偶数及ok(因为此时可以通过改变前n项中某一个数字x的符号,使得和S减少2x,从而等于k),如果是奇数,n增大直到差为偶数。 注意k=0这种边界情况,此时应该输出n=3 (因为题目中n>=1)。 /* * uva10025.cpp * * Created on: 2013-4-17 ...原创 2013-04-17 15:55:48 · 82 阅读 · 0 评论 -
uva 621 - Secret Research
题目比较简单,只有四种情况,有歧义题目说按照从上到下的规则匹配,于是就依次比较就AC了。。。 /* * uva621.cpp * * Created on: 2013-4-16 * Author: jd */#include<cstdio>#include<cstring>int main() {// setbu...原创 2013-04-16 20:27:08 · 83 阅读 · 0 评论 -
uva 253 - Cube painting
一个立方体有6各面,每个面朝上,然后绕z轴旋转又分别有4种情况,所以共有24中情况。然后依次比较颜色是否相同即可,比较麻烦的是如何表示旋转的各种情况,其中也参考了其他人的做法。 /* * uva253.cpp * * Created on: 2013-4-16 * Author: kevinjiang */#include<cstdio&g...原创 2013-04-16 16:30:53 · 92 阅读 · 0 评论 -
uva 10161 - Ant on a Chessboard
我的思路是先找到所求数字n 所在第m圈对角线的元素为m^2-m+1,然后根据坐标差值求出n的坐标,注意奇偶坐标的处理。 /* * uva10161.cpp * * Created on: 2013-4-16 * Author: kevinjiang */#include<cstdio>#include<cmath>...原创 2013-04-16 15:08:09 · 71 阅读 · 0 评论 -
uva 113 - Power of Cryptography
本以为可能要大数计算,网上看了下貌似double就够了。 /* * uva113.cpp * * Created on: 2013-4-16 * Author: kevinjiang */#include <cstdio>#include <cmath>int main() { double n, p;...原创 2013-04-16 14:15:43 · 91 阅读 · 0 评论 -
uva 400 - Unix ls
题目比较简单,字符串排序,然后根据最长字符串决定每行每列输出单词个数,处理输出格式比较麻烦,printf中*字符可以动态指定宽度。 setbuf(stdout,NULL);是为了eclipse for C++里console用,否则eclipse会一起最后输出,好蛋疼。。。但是提交的时候最好注释掉,比较了下,这道题关闭缓冲比正常情况judge时间慢了10倍。 /*...原创 2013-04-15 22:59:44 · 80 阅读 · 0 评论 -
uva 156 - Ananagrams
思路:判断两个单词互为anagram的方法可以将两个单词中字母转成小写,然后按照字母排序,如果排序后两个单词相同,即认为是互为anagram。 C++ AC。/* * uva156.cpp * * Created on: 2013-4-15 * Author: kevinjiang */#include<cstdio>#includ...原创 2013-04-15 15:40:41 · 109 阅读 · 0 评论 -
uva 120 - Stacks of Flapjacks
每次找到未排序中最大值,想flip到顶部,然后flip到底部,注意特殊情况 如果已经在顶部或者底部,就不需要多余的flip操作了。/* * uva120.cpp * * Created on: 2013-4-12 * Author: kevinjiang */#include<cstdio>#include<cstrin...原创 2013-04-12 23:41:42 · 75 阅读 · 0 评论 -
uva 299 - Train Swapping
题目地址:http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=98&page=show_problem&problem=235 题目说的比较啰嗦,其实就是考冒泡排序,输出交换次数。/* * uva299.cpp * * Created ...2013-04-12 13:30:07 · 98 阅读 · 0 评论 -
uva 152 - Tree's a Crowd
题目地址:http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=88 C++ AC。理解题意,找出每棵树最近邻树的距离,进行统计。/* * uva152.cpp * * Created on: 2013-4-12...原创 2013-04-12 10:34:57 · 124 阅读 · 0 评论 -
uva 10474 - Where is the Marble?
题目地址:http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=98&page=show_problem&problem=1415 题目比较简单,先排序,再搜索。。/* * uva10474.cpp * * Created on: 201...原创 2013-04-11 15:52:33 · 66 阅读 · 0 评论 -
uva 10420 - List of Conquests
题目地址:http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&category=98&problem=1361&mosmsg=Submission+received+with+ID+11590304 题目比较简单,只需统计国家名...原创 2013-04-11 15:16:38 · 272 阅读 · 0 评论 -
1002. A+B for Polynomials (25)
链接:http://pat.zju.edu.cn/contests/pat-a-practise/1002 题意:多项式相加并且格式化输出。 分析:指数范围不大,可以简单用数组实现,数组的索引对应指数,内容对应系数。 #include<stdio.h>double result[1005];int main() { int k; ...原创 2014-02-24 15:23:18 · 81 阅读 · 0 评论 -
pat 1001. A+B Format (20)
链接:http://pat.zju.edu.cn/contests/pat-a-practise/1001 概述:计算a+b的值,并且将和按照每三位一个逗号分隔的方式输出。 注意点:负数和零的处理。 #include<stdio.h>int main() { int a, b, c; scanf("%d%d", &a, &b)...原创 2014-02-24 12:26:48 · 82 阅读 · 0 评论 -
uva 10341 - Solve It
根据一些数学知识可知,整个函数是单调递减的,所以根据二分法找零点。需要注意 浮点类型数字的比较方法。 #include<stdio.h>#include<math.h>#include<float.h>int p, q, r, s, t, u;double calcu(double x) { return p * exp...原创 2014-01-13 21:33:28 · 111 阅读 · 0 评论 -
uva 839 - Not so Mobile
递归判断,若有不平衡,标记flag,平衡则返回左右子树重量和。 #include<stdio.h>int flag;int isBalanced() { int wl, dl, wr, dr; scanf("%d%d%d%d", &wl, &dl, &wr, &dr); if (!wl) wl = isBa...原创 2013-12-17 20:26:20 · 93 阅读 · 0 评论 -
uva 327 - Evaluating Simple C Expressions
我的做法没有涉及什么语法树,主要是字符串处理,水平略搓写的有点麻烦,题目说忽略空格,youcase比如 a++有可能是a + +,导致WA,后来加上了预处理去掉所有空格才AC。 #include<stdio.h>#include<string.h>char tmpStr[200];char expr[200];int appeared[2...原创 2013-12-17 16:55:58 · 84 阅读 · 0 评论 -
uva 699 - The Falling Leaves
根据给出的先序遍历顺序边构造树边统计树叶之和,根节点在大数组中间索引处开始,左右树依次向两边展开。 #include<stdio.h>#define MAX 1000int result[MAX];int cases=1;void printLeaves() { printf("Case %d:\n",cases++); int i;...原创 2013-12-17 10:56:24 · 80 阅读 · 0 评论 -
uva 784 - Maze Exploration
比较简单,4个方向dfs。 #include<stdio.h>#include<string.h>#include<ctype.h>char maze[35][85];int lines;void printMaze() { int i; for (i = 0; i < lines; i++) {...原创 2013-12-13 12:32:26 · 83 阅读 · 0 评论 -
uva 572 - Oil Deposits
八个方向dfs,统计个数。 #include<stdio.h>#define MAX 105int map[MAX][MAX];int m, n;void dfs(int i, int j) { if (i < 0 || j < 0 || i > m || j > n) return; if (map[i][j...原创 2013-12-13 10:18:47 · 68 阅读 · 0 评论 -
uva 657 - The die is cast
需要两层dfs,第一层找骰子,第二层在骰子里找点数。递归时访问过的节点记得标记用以结束递归。 #include<stdio.h>#include<stdlib.h>char map[55][55];int w, h;int count;int num;int arr[1000];int idx = 1;void s...原创 2013-12-13 10:04:12 · 72 阅读 · 0 评论 -
uva 712 - S-Trees
题目有点长,但是思路很简单,找出每次的路径2进制序列然后在叶子里找到对应的0或1值即可。 #include<stdio.h>#include<stdlib.h>#include<math.h>int orders[10];char leaves[200];int num=1;int main() { int n; c...原创 2013-12-06 16:35:41 · 77 阅读 · 0 评论 -
297 - Quadtrees
简单点实现可以不用把各个节点连接起来建树,递归的扫描一遍,根据每个节点的表示的跨度范围和类型填充一个1024的数组,每个case中两个树依次填充完毕,最后统计数组中1的个数即为结果。 #include<stdio.h>char str[2000];int num[1024];int idx;void buildTree(char *s, int st...原创 2013-12-06 01:21:17 · 69 阅读 · 0 评论 -
uva 548 - Tree
利用中序和后序构建二叉树然后进行dfs搜索,两步可以同时进行,另外这道题目输入处理也有点麻烦,参考了一些大神的代码,自己重写因为一个值每次case之后未初始化悲剧的RE了好多次。 查了下 runtime error的可能大概有:Runtime Error(ARRAY_BOUNDS_EXCEEDED) // array bounds exceed 数组越界Runtime Err...原创 2013-12-04 09:58:23 · 79 阅读 · 0 评论 -
uva 112
http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=48 寻找是否存在某个从根到叶子的路程和等于某个数值,看了好多人写的,汇总整理了下写了个递归的方法,PKU上1145提交能够AC,UVA上怎么都不行。。后来发现有人给的case...原创 2013-11-28 19:50:25 · 84 阅读 · 0 评论