ACM
sudo-wang
稳住
展开
-
POJ-1207 The 3n + 1 problem
一道水题,也是一道坑题。在这里记录下一个坑。本来很简单,但是没考虑到i和j的大小不确定,所以得先判断大小,然后进行遍历。其实题上给的输入例子,都是 i<j,但是仔细看题上说明并没有说i和j谁大谁小。所以这里还是需要进行判断的两个小技巧:判断奇偶数的简单方法:n & 1 结果为 1 说明是奇数;否则为偶数数遍历次数的话。要从0开始,别犯错误想当然从1开始。。#incl...原创 2019-03-05 10:41:07 · 251 阅读 · 0 评论 -
Paypal 笔试题:用 sort 函数对 string 进行局部排序
Description:有一个字符串,现在对其进行多次局部排序,例如str=“abcdef”,输入a=0, s=1,e=3,表示对abc这个子字符串进行降序排列:cbadef。若a=1,表示按照升序排列,a=0表示降序;s,e表示起始和终止字符的位置。输入例程:10 3naitdocexv1 1 30 9 101 7 910 代表字符串的长度,3表示进行3次操作,下一行是字符串,之...原创 2019-03-17 16:44:49 · 507 阅读 · 0 评论 -
POJ-3094 Quicksum(cin和getline区别:输入含有空格)
本题不难,重点在于理解 cin 和 getline 的区别知识点:cin 读取时候遇到空格会认为是结束符。而 getline 可以读取一整行包括空格详情:https://blog.csdn.net/weixin_41042404/article/details/80934191getline 的头文件是 #include< string >代码:#include <...原创 2019-03-16 20:52:32 · 191 阅读 · 0 评论 -
INF=0x3f3f3f3f 是什么意思?
转载 2019-03-16 18:36:34 · 2048 阅读 · 0 评论 -
POJ-1083 Moving Tables(imos算法)
这一题有两个陷阱:给出的起始点可能小于终点 ,所以必须要加个判断,让第二个数大于第一个数区间算的时候,一定是奇数到偶数,才能做到真正的区间全覆盖。所以如果第二个数是奇数,要加一变为偶数;第一个数为偶数,要减一变为奇数知识点:这道题主要用到了imos算法。很好用的算法,详见:http://www.hankcs.com/program/algorithm/imos_method.html...原创 2019-03-16 18:35:30 · 289 阅读 · 0 评论 -
POJ-2159 Ancient Cipher
其实这题也不算难,完全没必要用vector、map、pair来做这道题,但是我是想借此题练习一下相关用法。此题的核心是:统计一个字符串中各个字母出现的频率。比如A出现两次,就记为频率为2方法一我将用vector、map相关知识来解答方法二我将用普通数组的方法来解答(26个大写字母减去 ‘A’ 得到的数字可以对应数组下标)方法一:知识点:map默认按照键的大小由小到大来排序,如果要按照...原创 2019-03-16 12:42:17 · 215 阅读 · 0 评论 -
map如何实现排序
参考:https://www.jianshu.com/p/5b24ac2a6cac在c++中有两个关联容器,第一种是map,内部是按照key排序的,第二种是unordered_map,容器内部是无序的,使用hash组织内容的。1、对有序map中的key排序如果在有序的map中,key是int,或者string,它们天然就能比较大小,本身的就是有序的。不用额外的操作。为了实现快速查找,ma...转载 2019-03-14 22:18:16 · 6450 阅读 · 0 评论 -
POJ-3299 Humidex
知识点:if … else if … else if … 最后结束可以没有else注意要避免在 while 中写入字符,容易出问题。如果想比如说读入字符 ‘A’ 就结束输入,可以写在 while(1)里面,加一句判断,字符等于 ‘A’ 时候,就 return 0; 一样可以结束输入ln(x) 这个函数用c++表示为log(x)。log(x) 就是自然对数。log10(x) 才是以为10底的...原创 2019-03-05 21:16:28 · 192 阅读 · 0 评论 -
G++与C++的区别
一、OJ提交题目中的语言选项里G++与C++的区别http://www.th7.cn/Program/cp/201405/199001.shtml首先更正一个概念,C++是一门计算机编程语言,G++不是语言,是一款编译器中编译C++程序的命令而已。那么他们之间的区别是什么?在提交题目中的语言选项里,G++和C++都代表...转载 2019-03-05 12:47:55 · 455 阅读 · 0 评论 -
POJ-1005 I Think I Need a Houseboat
知识点:ceil(x)返回不小于x的最小整数值(然后转换为double型)。floor(x)返回不大于x的最大整数值。(注:1.00的话ceil和floor返回都是1)round(x)返回x的四舍五入整数值。#include <iostream>#include <sstream>#include <string>#include <cs...原创 2019-03-05 12:33:18 · 135 阅读 · 0 评论 -
利用二进制运算实现加法(不使用四则运算)
这两天去参加面试碰到的一个题,题不难,就是忘记了。题目: 要求求两个整数之和,并且不得使用+、-、*、/ 四则运算符号。解析: 很明显这个题要用二进制运算去解决。二进制的按位相加实际等效于异或。二进制的每位的进位计算等效于按位与,然后左移。进位加上按位相加结果就是最终结果。 重复使用前两步,直到没有进位为止。代码如下:#include <stdio.h>int A...原创 2019-09-26 19:56:09 · 687 阅读 · 0 评论