ACM_笔记
Carey_Lu
IT技术、专注、阳光、天蝎座、90后、旅游、
展开
-
hdu 1466计算直线的交点数
题意不难解,第一道dp题。来自hdu的pptn条直线互不平行且无三线共点的最多交点数max=1+2+……(n-1)=n(n-1)/2,所以n=20的话,最大的交点数是190本题是求有多少种交点数:容易列举出N=1,2,3的情况:00,10,2,3如果已知的情况,我们来分析加入第N条直线的情况(这里N=4):1、第四条与其余直线全部平行 => 无交点;2、第四原创 2015-11-10 22:55:44 · 449 阅读 · 0 评论 -
腾讯笔试第三题贿赂怪兽的解题思路(dp动规)
腾讯2019.4.5笔试第三题:给怪兽付金币,求最小金币数,雇佣的怪兽会一直守护,遇见的怪兽战力必须小于等于已经雇佣的怪兽战力总和,如果大于,怪兽就会攻击你,要求安全护送出怪兽谷。要想成功穿越怪兽谷而不被攻击,他最少要准备多少金币。输入描述:第一行输入一个整数N,代表怪兽的只数。第二行输入N个整数,代表武力值。第三行输入N个整数,代表收买N只怪兽所需的金币数。示例1...原创 2019-04-19 21:40:43 · 897 阅读 · 0 评论 -
动态规划——最大连续子序列和
最大连续子序列和问题如下: 下面介绍动态规划的做法,复杂度为 O(n)。 步骤 1:令状态 dp[i]表示以 A[i]作为末尾的连续序列的最大和(这里是说 A[i]必须作为连续序列的末尾)。 步骤 2:做如下考虑:因为 dp[i]要求是必须以 A[i]结尾的连续序列,那么只有两种情况:这个最大和的连续序列只有一个元素,即以 A[i]开始,以 A[i]...转载 2019-04-18 22:48:19 · 633 阅读 · 0 评论 -
求字符串转化的最小操作次数 DP动态规划
题目来自leetcode上的动态规划类的练习题, 难度系数为hard。题目链接:https://leetcode.com/problems/edit-distance/description/题目要求计算把一个字符串转化成目标字符串的最小操作次数。一开始我想到字符串转化的方法是按相等数目的字符递增地进行转化,这个方法不能有序地解决转化的最小操作次数,所以找不到动态规划的转态转移方程。后来参...转载 2019-04-18 14:14:28 · 4432 阅读 · 0 评论 -
搜索问题总结(dfs、bfs的终止条件细节)
题目描述给定两个-100到100的整数x和y,对x只能进行加1,减1,乘2操作,问最少对x进行几次操作能够得到y?例如:a=3,b=11;可以通过3*2*2-1,3次操作得到11;a=5,b=8;可以通过(5-1)*2,2次操作得到8;输入描述:输入以英文逗号分隔的两个数字,数字均在32位整数范围内。输出描述:输出一个数字。示例1输入3,1...原创 2019-04-18 10:47:12 · 2539 阅读 · 2 评论 -
网易互娱的笔试第二题(字母进制转换__模拟题)
编码规则:对于正整数5555,按照第一步,会划分成两组:005,555按照第2步,每组转成二进制,结果如下:101,1000101011按照第3步,会划分为3组:00101,10001,01011按第4步,算出每一组的值:5,17,11数值5以字符5表示,数值17以字母表第8个大写字母H表示,数值11以字母第2个大写字母B表示,则转换成以下字符:5,H,B...原创 2019-04-20 22:23:00 · 312 阅读 · 0 评论 -
网易互娱的笔试第一题(扑克牌顺子数__dfs)
给定扑克牌,判断有多少种可能的顺子方案。其中顺子是由5个或者以上的连续数字组成,给定当前的手牌,不同的牌组成的相同的顺子视为不同方案,如3 3 4 5 6 7,可以组成两种不同的(3,4,5,6,7)的顺子。示例1输入477 3 3 4 4 5 652 3 4 6 A5A 2 3 4 563 4 5 6 7 8...原创 2019-04-20 21:40:09 · 621 阅读 · 0 评论 -
cin.getline()、cin.get()、getline(cin,str)、gets()区别比较
cin.getline()1、多余规定字符串长度时,cin会出现失效位,可以通过cin.clear()清除,然后就正常读取后面的字符;2、不接收回车或结束标志字符;cin.get()1、多余规定字符串长度时,cin不会出现失效位,而是将多余的存入读取缓冲区,再次调用cin.get()可以读取剩下的字符内容;2、会接收回车或结束标志字符,可利用ch=cin.get()来接受结束...原创 2019-04-04 12:35:56 · 605 阅读 · 0 评论 -
N的阶乘(大数阶乘算法)
题目描述输入一个正整数N,输出N的阶乘。输入描述:正整数N(0<=N<=1000)输出描述:输入可能包括多组数据,对于每一组输入数据,输出N的阶乘输入例子:4515输出例子:241201307674368000#include<iostream>#include<cstring>using names...原创 2019-03-29 16:29:51 · 4130 阅读 · 0 评论 -
ACM标准输入输出JAVA版及性能优化
这篇介绍ACM输入输出的java语言版本1. 输入①类形式:import java.util.*;import java.io.*;public class Main{public static void main(String[] args){Scanner cin1 = new Scanner(System.in);Scanner cin2 = new Scanner(new...原创 2018-05-04 21:30:57 · 406 阅读 · 0 评论 -
ACM标准输入输出C/C++版
对于刚开始在OJ平台上刷题的人来说,标准输入输出是一个很让人头痛的问题,个人也经历过这样的痛苦,因此在这里进行一下总结。C++输入 ①只有一组测试数据 以计算a+b为例:#include < iostream > using namespace std; int main() { int a,b; cin >> a >> b; ...原创 2018-05-04 19:55:56 · 2079 阅读 · 0 评论 -
全错排公式
某人写了n封信和n个信封,如果所有的信都装错了信封。求所有的信都装错信封,共有多少种不同情况。 当N=1和2时,易得解~,假设F(N-1)和F(N-2)已经得到,重点分析下面的情况:1.当有N封信的时候,前面N-1封信可以有N-1或者 N-2封错装。2.前者,对于每一种错装,可以从N-1封信中任意取一封和第 N封错装,故=F(N-1) * (N-1)。3.后者简原创 2015-11-09 18:18:04 · 8125 阅读 · 1 评论 -
输入1~n共n个数,打乱后随机删除一个,找出删除的那个数,不许排序 && 不使用其它变量,实现两个数字的交换
输入1~n共n个数,打乱后随机删除一个,找出删除的那个数(不许排序)对于删除一个数,大概有四种方法:(1)用1+2+...+n减去当前输入数据的总和。时间复杂度:O(n) 空间复杂度:O(1) 【容易溢出】(2)用1*2...*n除以当前输入数据的总积。时间复杂度:O(n) 空间复杂度:O(1) 【容易溢出】(3)用1^2^...^n的结果在逐个异或当前输入数据。时间复杂度:O(...原创 2019-04-25 16:02:52 · 1880 阅读 · 0 评论