刷题
ziggyPLAYguitar
随处荡,多冰冷
展开
-
排序
输入一行数字,如果我们把这行数字中的‘5’都看成空格,那么就得到一行用空格分割的若干非负整数(可能有些整数以‘0’开头,这些头部的‘0’应该被忽略掉,除非这个整数就是由若干个‘0’组成的,这时这个整数就是0)。你的任务是:对这些分割得到的整数,依从小到大的顺序排序输出。Input输入包含多组测试用例,每组输入数据只有一行数字(数字之间没有空格),这行原创 2017-10-11 10:53:43 · 282 阅读 · 0 评论 -
丑数计算
将给定个数的丑数由小到大输出丑数(因子只包含2,3,5的数),1作为第一个丑数思路:丑数应该是另一个丑数除以2,3,5的结果(1除外)#include <iostream>using namespace std;class Test{ private: long long* pNumbers; ...原创 2018-09-03 13:14:47 · 249 阅读 · 0 评论 -
贪心算法刷题(一)hdu 1050
/* 400个房间两两为一组,创建为大小为200的数组来存放 答案为:叠加最多的数*10 */#include <iostream>using namespace std;int main(){ int t,i,j,n,p[200]; int s,d,temp,k,max; cin>>t; for (i=0; i<t;...原创 2018-03-05 20:58:32 · 496 阅读 · 0 评论 -
并查集刷题—HDU1232
点击打开链接#include <iostream>using namespace std;int f[1000],road;int find(int i){ while (f[i]!=i) i=f[i]; return i;}void Union(int a,int b){ int A=find(a); int B=find(...原创 2018-03-04 16:30:22 · 224 阅读 · 0 评论 -
动态规划刷题(一)
/* 有个穷困的艺术家。他画了一幅超现实主义的作品《方块手拉手》。现在他已经把图画中手拉手的一排大小不一的方块都画出来了。现在要考虑上颜色了。可惜他手中的钱并不多了。但是他是个有追求的人,他希望这幅画中每两个相邻的方块的颜色是不一样的。你能帮他计算一下把这幅画上色后,最少需要花多少钱么。输入 N个方块,K个颜色接下来每列是各个方块染成不同颜色的价钱输出 最少花的钱 例: 4 3 2 3 2 9...原创 2018-03-02 19:24:23 · 2503 阅读 · 1 评论 -
hdu 1290 套用数学公式
(1) n条直线最多分平面问题题目:n条直线,最多可以把平面分为多少个区域。公式:f(n)=n(n+1)/2+1(2)折线分平面公式:f(n)=2n^2-n+1(3)封闭曲线分平面公式:f(n)=n^2-n+2(4)平面分割空间问题公式:f(n)=(n^3+5n)/6+1此题用第四种公式#include<iostream>using namespace std;int main()...原创 2018-02-28 20:32:06 · 316 阅读 · 0 评论 -
游戏
有n个小朋友围成一圈玩游戏,小朋友从1至n编号,2号小朋友坐在1号小朋友的顺时针方向,3号小朋友坐在2号小朋友的顺时针方向,……,1号小朋友坐在n号小朋友的顺时针方向。 游戏开始,从1号小朋友开始顺时针报数,接下来每个小朋友的报数是上一个小朋友报的数加1。若一个小朋友报的数为k的倍数或其末位数(即数的个位)为k,则该小朋友被淘汰出局,不再参加以后的报数。当游戏中只剩下一个小朋友时,该小朋友获胜。...原创 2018-03-06 20:55:12 · 249 阅读 · 0 评论 -
敌兵部阵
/* C国的死对头A国这段时间正在进行军事演习,所以C国间谍头子Derek和他手下Tidy又开始忙乎了。A国在海岸线沿直线布置了N个工兵营地,Derek和Tidy的任务就是要监视这些工兵营地的活动情况。由于采取了某种先进的监测手段,所以每个工兵营地的人数C国都掌握的一清二楚,每个工兵营地的人数都有可能发生变动,可能增加或减少若干人手,但这些都逃不过C国的监视。 中央情报局要研究敌人究竟演习什么原创 2017-12-28 16:49:31 · 230 阅读 · 0 评论 -
二分法实现开方
#includeusing namespace std;double sqrt(double n){ double a=0,b=n; double c=(a+b)/2; while ((c*c)!=n) { if (c*c>n) { b=c; c=(a+b)/2;//左移 }原创 2017-11-27 15:11:37 · 949 阅读 · 0 评论 -
学生排队
体育老师小明要将自己班上的学生按顺序排队。他首先让学生按学号从小到大的顺序排成一排,学号小的排在前面,然后进行多次调整。一次调整小明可能让一位同学出队,向前或者向后移动一段距离后再插入队列。 例如,下面给出了一组移动的例子,例子中学生的人数为8人。 0)初始队列中学生的学号依次为1, 2, 3, 4, 5, 6, 7, 8; 1)第一次调整,命令为“3号同学向后移动2”,表示3号原创 2017-11-30 18:56:36 · 358 阅读 · 0 评论 -
string实现大数减法
先从低位开始减,最后将首部多余的0删除就行了。需要保证的是string a的值要大于或者等于 string b 的值代码如下:#include #include using namespace std;string sub(string a,string b){//a的长度>=b的长度 int l1=(int)a.size()-1,l2=(int)b.size()-原创 2017-10-31 19:48:18 · 757 阅读 · 0 评论 -
string实现大数加法
考虑到string里各项是字符,所以要反复进行+48和-48来实现数字和字符间的转换。整个加分过程使用一个add,前提是输入的a的长度要大于或者等于b;如果a的长度比b小,那就颠倒一下。代码如下:#include #include using namespace std;string add(string a,string b){//字符串相加,a长度大于等于b原创 2017-10-31 19:04:00 · 972 阅读 · 0 评论 -
Building Blocks
Problem DescriptionJohn are playing with blocks. There are N blocks (1 <= N <= 30000) numbered 1...N。Initially, there are N piles, and each pile contains one block. Then John do some operations P原创 2017-10-21 10:44:27 · 738 阅读 · 0 评论 -
删除重复字符
给定两个字符,从第一个字符中删除在第二个字符中出现的字符思路:通过字符的ascii码值作为下标,用数组构建一个哈希表#include <iostream>#include <string>using namespace std;class Test{ private: string a; ...原创 2018-09-03 14:00:20 · 192 阅读 · 0 评论