- 博客(37)
- 收藏
- 关注
原创 Factstone Benchmark
/*1119. Factstone Benchmark题目大意: 1960年发行了4位计算机,从此以后每过10年,计算机的位数变成两倍。输入某一个年份,求 出在这个年份的最大的整数n使得n!能被一个字表示。解题思路: 先求出年份对应的字长。 用科学记数法表示阶乘,以2为底,从指数可以得到位数,与字长比较即可。*/#incl
2013-01-11 21:22:38
741
原创 1012.Stacking Cylinders 简单计算几何 (判两线段是否重叠?应该不是)
/*1012.Stacking Cylinders 简单计算几何 (判两线段是否重叠?应该不是)题目大意: 如图所示,给出最底层的n个球的位置,求最顶层的球的位置。 1<=n<=10解题思路: 关键点在于已知两个圆的圆心坐标,求放在这两个圆上的圆的圆心坐标。 向量+勾股定理。*/#include #include
2013-01-08 22:11:54
470
原创 1515. 魔板C[Speical judge]
/*1515. 魔板C[Speical judge]题目大意:N>10解题思路:康拓编码重点注意: 重点1:node下标代表康拓编码,board代表魔板状态 重点2:由于使用了康托编码,空间 大大节省,最多有 8! 种情况 重点3:康拓编码,获得魔板状态的康拓编码 康托编码: 百度百科中对康托展
2013-01-08 22:10:45
421
原创 1443.Printer Queue 基本队列操作
/*1443.Printer Queue 基本队列操作题目大意: 给出一个长度为n的打印任务队列,每个任务有优先级。每次从队列头得到一个任务,如果它是剩余任务中优先级最高的,则打印它,否则放到队列尾。求出其中某个特定任务是第几个被执行的。 n<=100解题思路: 使用队列直接模拟。 取出队列头判断是否打印,如果打印则已打印任务数
2013-01-08 22:08:24
2522
原创 1156 Binary tree 深优 指针 简单树的遍历
/*1156 Binary tree 深优 指针 简单树的遍历题目大意: 给出一棵二叉树每个节点的编号,内容以及左右子节点的编号,以先序遍历二叉树输出每个节点的内容。解题思路: 先序遍历:先输出当前节点的内容,然后遍历左子树,最后遍历右子树。 先找出没有父节点的节点,即根。 从根开始遍历进行先序遍历。
2013-01-08 22:07:27
413
原创 1151. 魔板[Speical judge]
/*1151. 魔板[Speical judge]题目大意:N>10解题思路:康拓编码重点注意: 重点1:node下标代表康拓编码,board代表魔板状态 重点2:由于使用了康托编码,空间 大大节省,最多有 8! 种情况 重点3:康拓编码,获得魔板状态的康拓编码 康托编码: 百度百科中对康托展开
2013-01-08 22:06:16
311
原创 1150. 简单魔板[Special judge]
/*1150. 简单魔板[Special judge] 题目大意: 给出魔板的起始状态,并给定三种基本操作,给出一个步数上限和目标状态,求从起始状态到目标状态的操作序列,长度不得超过上限。解题思路: 对模板进行状态搜索; 由一种状态可以转移到另外三种状态,搜索树为一棵三叉树; 在这棵三叉树上搜索,目的是求出最优解。*/#i
2013-01-08 22:05:19
460
原创 1036. Crypto Columns数组与下标(二维数组) 简单
/*1036. Crypto Columns数组与下标(二维数组) 简单题目大意: 给出一种加密方式,把一个字符串按行写成二维形式,再按照给定字符串的字符大小顺序 逐列替输出。给出加密后的字符串,还原本来的字符串。解题思路: 按照解密规则把输入字符串写在二维数组上,再输出。*/#include #include #inc
2013-01-08 22:04:30
492
原创 1024.Magic Island 树的遍历
/*1024.Magic Island 树的遍历题目大意: 给出一个有N个节点的树,从结点K开始出发,不重复经过任意一条边,求最远可以走的路程。解题思路: 树的性质:两个节点不经过重复边的路径有且只有一条。 从起点开始BFS或DFS,求出到所有节点的不经过重复边的路径长度,取其中的最大值即为答案。*/ #include #in
2013-01-08 22:03:27
341
原创 1009. Mersenne Composite N 梅森素数
/*1009. Mersenne Composite N 梅森素数题目大意: 梅森素数Mn:定义为2n-1其中n为素数且2n-1也为素数的数。 给定k,求出所有素数n<=k,且满足2n-1不是梅森素数的数,并且将它们分解。 k<=63*/#include #include using namespace std;//重点1
2013-01-08 22:00:51
1303
原创 1007. To and Fro 数组与下标(二维数组) 简单
/*1007. To and Fro 数组与下标(二维数组) 简单题目大意: 给出一种加密方式,把一个字符串按列写成二维形式,再逐行从左到右或从右到左交替输出。给出加密后的字符串,还原本来的字符串。解题思路: 按照解密规则把输入字符串写在二维数组上,再输出。*/#include #include #include using namesp
2013-01-08 21:59:37
408
原创 1006.Team Rankings 栈与回溯 简单 5!搜索
/*1006.Team Rankings 栈与回溯 简单 5!搜索题目大意: 对于两个排列p, q,定义 distance( p, q )为在p, q中出现的相对次序不同的元素的对数。相当于以p为基准,求q的逆序数。 给出n个5元排列,构造一个排列,使得该排列对n个排列的distance之和最小。 n<=100解题思路: 枚举
2013-01-08 21:58:41
392
原创 1198. Substring 8个串排出最小字典序(8!枚举)
/*1198. Substring 8个串排出最小字典序(8!枚举)题目大意: 用N个字符串拼成一个新的字符串 要求新字符串字典序最小 如: a ab ac 则答案为:aabac 1<=N<=8,每个字符串长度不超过100解题思路: 枚举n!种情况,最多为8!=40320种
2013-01-08 21:57:39
740
原创 1176. Two Ends两人从两头取数
/*1176. Two Ends两人从两头取数题目大意: 给出n个正整数排成一列,A和B轮流取数,只能取两端的数,最后取到的数的和较大的人胜利,A和B之间的差为分值; A可以自由选择策略,B的贪心策略取两端中较大的数,如果相等则取左边的数; 问A赢B的分值最大为多少。 n<=1000,且n为偶数。解题思路: A尝
2013-01-08 21:56:19
1868
原创 1051. Biker's Trip Odomete简单题
/*1051. Biker's Trip Odomete简单题题目大意: 给出车前轮的直径,转圈数以及时间,求出车行走的路程和平均速度。解题思路: 车轮周长 = 直径 × 圆周率 路程 = 周长 × 转圈数 平均速度 = 路程 / 时间*/#include #include using namespace std;in
2013-01-08 21:55:34
531
原创 1046. Plane Spotting排序
/*1046. Plane Spotting排序题目大意: 给出一个长度为N的非负整数序列(所有数不超过200),还有两个整数M和K,求前M个最优的长度不小于K的连续子序列。 连续子序列的优先级如何比较 1、平均值大的序列优于平均值小的 2、条件1相同情况下,长度大的序列优于长度小的 3、条件1和2相同情况下,结束
2013-01-08 21:54:36
957
原创 1035. DNA matching简单题
/*1035. DNA matching简单题题目大意: 给出n个DNA单链,问可以用这些DNA单链组成多少个DNA双链; 每个DNA单链最多使用一次; 两个DNA单链能组成DNA双链,当且仅当两个DNA单链的长度相等,且对应位置上能配对,A与T配对,C与G配对; n<=100, 每个单链长度不超过100。解题思路:
2013-01-08 21:53:19
553
原创 1027. MJ, Nowhere to Hide简单题
/*1027. MJ, Nowhere to Hide简单题题目大意: 给出N对BBS_ID IP_Address,求出IP_Address相同的BBS_ID。 N<=20解题思路: 枚举每两个BBS_ID IP_Address对,比较IP_Address是否相同; 字符串比较。 for (i
2013-01-08 21:52:24
354
原创 1021. Couples简单题 -> 规模原来很大 -> 难 ->数据结构: 栈
/*1021. Couples简单题 -> 规模原来很大 -> 难 ->数据结构: 栈题目大意: N对夫妇站成一圈 如果某对夫妇站在相邻位置,则从圈中移走 重复以上操作 问最后会不会没人 如1 3是一对,2 4是一对,则No 如1 4是一对,2 3是一对,则Yes 1<=N<=100
2013-01-08 21:51:16
437
原创 1020. Big Integer大数求模
/* 1020. Big Integer大数求模 题目大意: 给出n个整数b1,b2,...,bn,和一个大整数x,求x对每个数bi取模的结果。 n<=100, 1<bi<=1000, x的长度不超过400。解题思路: 对bi逐个计算;高精度,模拟竖式计算。 int div(char x[], int b) {
2013-01-08 21:47:36
619
原创 1153. 马的周游问题
#include #include #include #include using namespace std;/* 重点1:递归两种方式,一种类似本例,判断条件返回true和false; 另外一个类似阶乘递归,return 1; or return n*(n-1)! */ //变量:记录点坐标,totaltonext记录该点下一步可以走的方向总数 st
2012-11-30 23:32:51
581
原创 1029. Rabbit
#include #include #include using namespace std;//1.重点:构造矩阵用于存储每一个月的兔子总数,注意m(1<=m<=10), d(1<=d<=100);// 即f[idx][0]......f[idx][50] 用于存储每一个月的兔子高精度总数int f[101][51];//2.重点:初始化 m 个月前兔子的总数,注
2012-11-06 15:17:45
525
原创 Sicily 1151. 魔板解题报告
#include #include #include using namespace std;int factorial[10];queue q;struct Node{ char board[10]; //board代表魔板状态,node下标代表康拓编码 int step; //step代表操作步数 int
2012-10-30 09:51:31
1325
原创 Sicily 1151. 魔板
/*1151. 魔板初始状态1 2 3 4 8 7 6 5给定一个状态,在指定步骤内通过A、B、C操作到达目标态定义一个状态数组,头指针fp指向当前的父节点操作,rp指向子节点操作。判断是否加入子节点序列时:判重! 扫描整个数组,若出现重复状态则跳过,对每个父节点都有三个操作,符合条件的进入队列,rp依次后移,fp完成三个操作后也fp++ 利用康托展开记录每种状态出现的位置,
2012-10-29 19:26:24
1479
原创 1381. a*b
#include #include #include using namespace std;string clear(string s){ if(s.length()==0) s = "0"; while(s.length()>0 && s[0]=='0'){ //重点1.使用该函
2012-10-28 20:31:22
564
原创 1036. Crypto Columns
#include #include #include using namespace std;int main(){ string key; string cText; char pText[101][101]; int cols; int rows; while(1){ cin >> key;
2012-10-28 14:30:58
350
原创 1007. To and Fro
#include #include #include using namespace std;//重点1;思考方向错误,应该往二维数组方向思考,cols,rows 掌握数组从0算起,涉及到i和j的设计 int main(){ int cols; int rows; string nLetters; while(1){ cha
2012-10-26 22:08:25
263
原创 1151. 魔板[Speical judge]
#include #include //include #include using namespace std;int factorial[10];queue q;struct Node{ char board[10]; //重点1:node下标代表康拓编码,board代表魔板状态 int step; //step 代表多少
2012-10-26 17:17:34
460
原创 1150. 简单魔板[Special judge]
#include #include using namespace std;//1.重点: 熟悉结构体 struct node{ int x; int y; char op; int pre;};//2.重点:关键是传引用,注意main函数的变量也是局部变量,其他函数不能直接使用 void OPA(int& tempX,int& tempY){
2012-10-21 15:37:20
532
原创 1198. Substring
#include #include #includeusing namespace std;int cmp(string a,string b){ if((a+b)>(b+a)) return 0; else return 1;}int main(){ int T; int N; string a[
2012-10-17 21:35:42
282
原创 1176. Two Ends
#include #include #include #include using namespace std;int dp[1000][1000];int a[1000];int fun(int left, int right){ if(left > right) return 0; //if(left == right) // return dp[le
2012-10-17 21:34:36
894
原创 1051. Biker's Trip Odomete
#include #include using namespace std;int main(){ double diameter; int revlotions; double time; double distance; double MPH; int N=1; while(1) { cin
2012-10-17 21:33:44
612
原创 1046. Plane Spotting
#include #include //system("pause");#include using namespace std;//1.重点:当需要表示关系组合数据时,学会使用结构体 struct period{ int start; int end; double aver;};//2.重点:学会使用sort函数 (#include ) bool
2012-10-17 21:32:38
328
原创 1035. DNA matching
#include #include using namespace std;int main(){ int t; int n; int m; string strand[100]; cin >> t; for(int l=0;l<t;l++){ cin >>n; m=0; fo
2012-10-17 21:31:29
270
原创 1027. MJ, Nowhere to Hide
#include #include using namespace std;int main(){ int n; while(1) { string a[20][2]; string b[10][2]; cin >> n; if(n == 0) break;
2012-10-17 21:30:32
690
原创 1021. Couples
#include #include using namespace std;int main(){ int husband; int wife; int a[200001]; int n; while(1){ cin >> n; if (n==0) break;
2012-10-17 21:29:02
398
原创 1020. Big Integer
#include #include using namespace std;int main(){ int T; cin >> T; int n; string x; int b[101]; int r[101]; for(int i=1;i<=T;i++){ cin >> n; for(int j=1;j<=n;
2012-10-17 11:29:00
619
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人