随笔分类 - AAA模版
摘要:在刷题的过程中,很多时候都用到区间[ maxn, maxn]。但我们知道常规的数组的下标都是从0开始的并没有负数,这时候,要么开一个二维数组,要么就是开一个[0, 2 maxn]的数组。 include using namespace std; const int maxn = 1e6; ///先声
阅读全文
摘要:背包恰好装满和不必装满的初始化区别 1.4 初始化的细节问题 我们看到的求最优解的背包问题题目中,事实上有两种不太相同的问法。有的题目要求“恰好装满背包”时的最优解,有的题目则并没有要求必须把背包装满。一种区别这两种问法的实现方法是在初始化的时候有所不同。 如果是第一种问法,要求恰好装满背包,那么在
阅读全文
摘要:问题描述 假设有 1 元,3 元,5 元的硬币若干(无限),现在需要凑出 11 元,问如何组合才能使硬币的数量最少? 问题分析 乍看之下,我们简单的运用一下心算就能解出需要 2 个 5 元和 1 个 1 元的解。当然这里只是列出了这个问题比较简单的情况。当硬币的币制或者种类变化,并且需要凑出的总价值
阅读全文
摘要:题目:有n种硬币,面值分别为V1,V2,...Vn,每种都有无限多。给定非负整数S,可以选用多少个硬币,使得面值之和恰好为S?输出硬币数目的最小值和最大值! include using namespace std; int n, m, t; const int INF = 0x3f3f3f3f; i
阅读全文
摘要:假设存在一个序列d[1..9] = 2 1 5 3 6 4 8 9 7,可以看出来它的LIS长度为5。 下面一步一步试着找出它。 我们定义一个序列B,然后令 i = 1 to 9 逐个考察这个序列。 此外,我们用一个变量Len来记录现在最长算到多少了 首先,把d[1]有序地放到B里,令B[1] =
阅读全文
摘要:一、简单基础dp 这类dp主要是一些状态比较容易表示,转移方程比较好想,问题比较基本常见的。主要包括递推、背包、LIS(最长递增序列),LCS(最长公共子序列),下面针对这几种类型,推荐一下比较好的学习资料和题目。 1、递推: 递推一般形式比较单一,从前往后,分类枚举就行。 简单: hdu 2084
阅读全文
摘要:``` / 用法一: 用str替换指定字符串从起始位置pos开始 长度为为len的字符串 string &replace(size_t pos, size_t len, const string& str) / include using namespace std; typedef long lo
阅读全文
摘要:二分最化最值问题 大多数情况下用于求解满足某种条件下的最大(小)值。 答案单调性: 答案的单调性大多数情况下可以转化为一个函数,其单调性证明多种多样,如下: 移动石头的个数越多,答案越大(NOIP2015跳石头)。 前i天的条件一定比前 i + 1 天条件更容易(NOIP2012借教室)。 满足更少
阅读全文
摘要:二分最化最值问题 把一个包含n个正整数的序列划分成m个连续的子序列(每个正整数恰好属于一个序列). 设i个序列的各数之和为s(i).你的任务是让所有s(i)的最大值尽量小. 这个算法很有现实意义.给你一堆乱七八糟的东西分堆,分出来的东西都不超过一个固定的数值,这是需要技术含量的喔. 1.首先确定二分
阅读全文
摘要:==在计算机科学中==,trie,又称前缀树或字典树,是一种有序树,用于保存关联数组,其中的键通常是字符串。与二叉查找树不同,键不是直接保存在节点中,而是由节点在树中的位置决定。一个节点的所有子孙都有相同的前缀,也就是这个节点对应的字符串,而根节点对应空字符串。一般情况下,不是所有的节点都有对应的值
阅读全文
摘要:给出一个string字符串,统计里面出现的字符个数 解决方案: 使用algorithm里面的count函数,使用方法是count(begin,end,'c'),其中begin指的是起始地址,end指的是结束地址,第三个参数指的是需要查找的字符. include using namespace std
阅读全文
摘要:下面通过两种直线方程的形式,求解点关于直线的距离、垂足、对称点公式。 问题描述1: 已知点的坐标(x0,y0),直线的方程为Ax+By+C = 0; 求点到直线上的距离d、点在直线上的垂足(x, y)、点关于直线的对称点(x’, y’)。 解决方法: (1)距离: d = ( Ax0 + By0 +
阅读全文
摘要:#include<bits/stdc++.h> using namespace std; const int maxn = 100000000+100; int n, m, cnt; int f[] = {1, 1, 2, 6, 24, 120, 720, 5040, 40320, 362880};
阅读全文
摘要:九余数定理(同余定理) 九余数定理(同余定理) 九余数定理(同余定理) 我们都知道对于十进制数,只要这个数能除尽3/9则他个位数字之和也能除尽3/9,以前只知道用没有证明过,下面来简单证明一下。 对于十进制数,举个简单的例子,这个数是abcd,他表示的大小就是 x=1000*a+100*b+10*c
阅读全文
摘要:#include<bits/stdc++.h> using namespace std; int n,k,p[200002],ans; int cnt,c; vector<int> v; void phi() { for(int i=2; i<=n; i++) p[i] = 0; p[1] = 1;
阅读全文
摘要:问n! 转化成k进制后的位数和尾数的0的个数。【UVA 10061 How many zeros and how many digits?】 Given a decimal integer number you will have to find out how many trailing zero
阅读全文
摘要:分解质因数: 1.保留重复 #include<stdio.h> #include<iostream> #include<string.h> #include<string> #include<ctype.h> #include<math.h> #include<set> #include<map>
阅读全文
摘要:A Math game Time Limit: 2000/1000MS (Java/Others) Memory Limit: 256000/128000KB (Java/Others) Submit Statistic Next Problem Problem Description Recent
阅读全文
摘要:位运算 功能 示例 位运算 去掉最后一位 (101101->10110) x >> 1 在最后加一个0 (101101->1011010) x << 1 在最后加一个1 (101101->1011011) x << 1+1 把最后一位变成1 (101100->101101) x | 1 把最后一位变
阅读全文

浙公网安备 33010602011771号