九度OJ小结
1. 高精度问题
可参考题目 题目1137:浮点数加法 http://ac.jobdu.com/problem.php?pid=1137
对于高精度问题可以考虑使用结构体。上述为浮点数加法,因此该结构体可以具有保存小数部分以及整数部分的成员变量,使用数组进行保存。于此同时还要记录下所保存数据的长度,因此还应当有两个int变量,保存整数部分长度和保存小数部分长度。
在C++中对运算符进行重载操作。
运算符函数定义的一般格如下所示: <返回类型说明符> operator <运算符符号>(<参数表>)
{ <函数体> } 成员函数运算符 运算符重载为类的成员函数的一般格式为:
<函数类型> operator <运算符>(<参数表>) { <函数体> }
() 双目运算符重载为类的成员函数时,函数只显式说明一个参数,该形参是运算符的右操作数。 () 前置单目运算符重载为类的成员函数时,不需要显式说明参数,即函数没有形参。 () 后置单目运算符重载为类的成员函数时,函数要带有一个整型形参。 调用成员函数运算符的格式如下: <对象名>.operator <运算符>(<参数>) 它等价于 <对象名><运算符><参数> 例如:a+b等价于a.operator +(b)。一般情况下,我们采用运算符的习惯表达方式。 运算符重载为类的友元函数的一般格式为: friend <函数类型> operator <运算符>(<参数表>) { <函数体> } 当运算符重载为类的友元函数时,由于没有隐含的this指针,因此操作数的个数没有变化,所有的操作数都必须通过函数的形参进行传递,函数的参数与操作数自左至右一一对应。 调用友元函数运算符的格式如下: operator <运算符>(<参数1>,<参数2>) 它等价于 <参数1><运算符><参数2> 例如:a+b等价于operator +(a,b)。 两种重载形式的比较 在多数情况下,将运算符重载为类的成员函数和类的友元函数都是可以的。但成员函数运算符与友元函数运算符也具有各自的一些特点: () 一般情况下,单目运算符最好重载为类的成员函数;双目运算符则最好重载为类的友元函数。 () 以下一些双目运算符不能重载为类的友元函数:=、()、[]、->。 () 类型转换函数只能定义为一个类的成员函数而不能定义为类的友元函数。 () 若一个运算符的操作需要修改对象的状态,选择重载为成员函数较好。 () 若运算符所需的操作数(尤其是第一个操作数)希望有隐式类型转换,则只能选用友元函数。 () 当运算符函数是一个成员函数时,最左边的操作数(或者只有最左边的操作数)必须是运算符类的一 个类对象(或者是对该类对象的引用)。如果左边的操作数必须是一个不同类的对象,或者是一个内部 类型的对象,该运算符函数必须作为一个友元函数来实现。 () 当需要重载运算符具有可交换性时,选择重载为友元函数。
重载操作解析
对于浮点数加法而言,结果的输出需要注意前导0的消除。

2. 进制转换问题
可参考题目 题目1080:进制转换 http://ac.jobdu.com/problem.php?pid=1080
对于进制转换问题,通过博客http://blog.csdn.net/jaster_wisdom/article/details/52107785 进一步了解具体的方法。
其中的方法算是从笔算转换进制转化来的,但是这个笔算的过程有那么点复杂。如果仅仅是举一个10进制到2进制的转换,其中的规律好像不是很清晰。需要注意的是在其他进制转换过程中向下余数不再是10倍的关系而是原来进制m的倍数,同时除数是进制n。
按照上述的笔算方法,得到的进制结果依次是从最低位到最高位。也就是保存的结果如果需要输出的话,应该倒序输出。
另外对于题目 题目1208:10进制 VS 2进制 http://ac.jobdu.com/problem.php?pid=1208



int cmp(const void *a, const void *b){
int lena = (int)strlen((char *)a);
int lenb = (int)strlen((char *)b);
if(lena == lenb)
return strcmp((char *)a, (char *)b);
else
return lena < lenb;
}
另外对于qsort函数的其他模板可以参考博客 http://blog.csdn.net/yuanjilai/article/details/7348345
九度 OJ1109 连通图; http://ac.jobdu.com/problem.php?pid=1109
九度 OJ1445 How Many Tables?; http://ac.jobdu.com/problem.php?pid=1445
- 九度 OJ1444:More is better http://ac.jobdu.com/problem.php?pid=1444
九度 OJ1446 Head of a Gang; http://ac.jobdu.com/problem.php?pid=1446


对于1446需要考虑的问题有并查集问题,姓名与Id对应问题(使用map存储),条件判断等问题。
可以参考博客 http://blog.csdn.net/u013027996/article/details/17101513
OJ1446 基本思路:
1、如果要使用数组,需要将字母转换为数字,当然最后输出的时候要转换回去。
2、并查集,读取两个name的时候,就合并。
3、求父节点,并且算出集合个数。
4、对每个集合做计算,求成员个数。符合条件,保留,不符合条件,忽略。
5、按照字母序输出结果。
九度OJ小结的更多相关文章
- 九度OJ小结2
由于安排问题,距离上次小结时间已经过去很久.导致这次小结的内容很多. 本次小结涉及到主要内容如下所示: 基于并查集操作的最小生成树问题(prime算法或者kruskal算法): 最短路径问题(Floy ...
- 九度oj 题目1087:约数的个数
题目链接:http://ac.jobdu.com/problem.php?pid=1087 题目描述: 输入n个整数,依次输出每个数的约数的个数 输入: 输入的第一行为N,即数组的个数(N<=1 ...
- 九度OJ 1502 最大值最小化(JAVA)
题目1502:最大值最小化(二分答案) 九度OJ Java import java.util.Scanner; public class Main { public static int max(in ...
- 九度OJ,题目1089:数字反转
题目描述: 12翻一下是21,34翻一下是43,12+34是46,46翻一下是64,现在又任意两个正整数,问他们两个数反转的和是否等于两个数的和的反转. 输入: 第一行一个正整数表示测试数据的个数n. ...
- 九度OJ 1500 出操队形 -- 动态规划(最长上升子序列)
题目地址:http://ac.jobdu.com/problem.php?pid=1500 题目描述: 在读高中的时候,每天早上学校都要组织全校的师生进行跑步来锻炼身体,每当出操令吹响时,大家就开始往 ...
- 九度OJ 1531 货币面值(网易游戏2013年校园招聘笔试题) -- 动态规划
题目地址:http://ac.jobdu.com/problem.php?pid=1531 题目描述: 小虎是游戏中的一个国王,在他管理的国家中发行了很多不同面额的纸币,用这些纸币进行任意的组合可以在 ...
- 九度OJ 1024 畅通工程 -- 并查集、贪心算法(最小生成树)
题目地址:http://ac.jobdu.com/problem.php?pid=1024 题目描述: 省政府"畅通工程"的目标是使全省任何两个村庄间都可以实现公路交通(但 ...
- 九度OJ 1371 最小的K个数 -- 堆排序
题目地址:http://ac.jobdu.com/problem.php?pid=1371 题目描述: 输入n个整数,找出其中最小的K个数.例如输入4,5,1,6,2,7,3,8这8个数字,则最小的4 ...
- 九度OJ 题目1384:二维数组中的查找
/********************************* * 日期:2013-10-11 * 作者:SJF0115 * 题号: 九度OJ 题目1384:二维数组中的查找 * 来源:http ...
随机推荐
- CentOS系统基础优化16条知识汇总
1.不用root管理,以普通用户的名义通过sudo授权管理: 2.更改默认的远程连接服务端,禁止root用户远程连接,甚至要更改只监听内网ip: 3.定时自动更新服务器时间,使其和互联网时间同步: 4 ...
- MarkDown 使用说明示例
一.标题 一级标题 二级标题 三级标题 四级标题 五级标题 六级标题 一级标题 这是 H2 这是 H3 一级和二级标题还有一种写法 就是下面加横杆,同时 超过2个的 = 和 - 都可以有效果. Thi ...
- 腾讯大湘网某处csrf(city.hn.qq.com)可投诉刷留言
触发点: http://city.hn.qq.com http://city.hn.qq.com/auto/c=shop&m=bbs&id=668 POST /msgboard/mes ...
- service citrix xcenserver health check service (xenserver healthcheck) failed to start verfy that you have sufficient privileges to srart system services
citrix XcenServer版本:7.2 citrix Xcencenter版本:7.2 安装citrix Xcencenter的时候报错: service citrix xcenserver ...
- thinkphp 外部js语言包
Thinkphp php文件也外部js文件公用同一个语言包 一 . php语言包转json数据格式 1.新建验证字段的语言包 application\common\lang\validate-cn.p ...
- Android技巧分享——如何用电脑下载在Google play中应用的apk文件
[Android技巧分享系列] 1.Android技巧分享——让官方模拟器和genymotion虚拟机飞起来 2.Android技巧分享——如何用电脑下载在Google play中应用的apk文件 G ...
- 点击除元素以外的任意地方隐藏元素js
比如想实现点击列表弹出筛选器,点击其他任意地方关闭筛选器,如图 该筛选器class名 $(document).click(function () { $(".subMenu").h ...
- Phpcms V9手机门户设置教程:怎么用PC V9做手机网站
一.在PHPcms V9管理后台设置手机门户 1.1.开启手机网站.位置:模块 >手机门户 > 添加手机站点,具体设置可参照截图: 填写站点名和LOGO文件相对位置,绑定用于手机网站的二级 ...
- [Model] LeNet-5 by Keras
典型的卷积神经网络. 数据的预处理 Keras傻瓜式读取数据:自动下载,自动解压,自动加载. # X_train: array([[[[ 0., 0., 0., ..., 0., 0., 0.], [ ...
- Redis 入门指令
-- -- string SET key value GET key GETRANGE key start end GETSET key value GETBIT key offset MGET ke ...