02 2020 档案
摘要:分治就是把一组大数据分成小数据管理,如1000可以分成1-500,501-1000分开操作。 ybt1244:和为给定数 【题目描述】 给出若干个整数,询问其中是否有一对数的和等于给定的数。 【输入】 第一行是整数n(0 < n ≤ 100,000),表示有n个整数。 第二行是n个整数。整数的范围是
阅读全文
摘要:基本概念:做在当前看来是最好的选择,不在整体最优上加以考虑,必须具有无后效性。 框架 从问题的某一初始解出发; while(能朝给定总目标前进一步) { 利用可行的决策,求出可行解的一个解元素; } 由所有解元素组成问题的一个可行解; 这个框架很简单,但在做题时就不是看上去这么简单了,有时会用for
阅读全文
摘要:其实可以这样理解,一个傻子走迷宫,每个壁都碰一次必能找到最终路径。 框架(1) int search(int k) { for(i=1;i<=算符种数;i++) if(满足条件) { 保存结果 if(到目的地)输出解 else search(k+1); 恢复:保存结果之前的状态{回溯一步} } }
阅读全文
摘要:递归可以类比递推,与递推不同是递推直接找规律,而递归是不断调用自身的函数。 最简单的例子: 用递归求1+2+3+……+n #include<bits/stdc++.h> using namespace std; int fac(int); int main() { int i; cin>>t; co
阅读全文
摘要:递推就相当于数学公式,找到之间的关系,在一定意义上就宣告胜利了,这是我做的一个典型题。 1188:菲波那契数列(2) 【题目描述】 菲波那契数列是指这样的数列: 数列的第一个和第二个数都为1,接下来每个数都等于前面2个数之和。 给出一个正整数a,要求菲波那契数列中第a个数对1000取模的结果是多少。
阅读全文
摘要:排序就是他的字面意思,一开始最早接触排序,那时候给的数少是用if,现在学的排序用在数据多时。 选择排序:可理解为从一组数据中挑选一个最值放在前排。 1.存入2.选择最值放在a[1]中3.排完输出。 冒泡排序:个人感觉比选择要麻烦,但是好理解,就是相邻两个数比较。 1.存入2.比较数据,交换位置3.执
阅读全文
摘要:在我看来高精度是普通计算的升级版,在洛谷阶级求和中就用到了(一开始没发现,错了好几次)。 输入位数很长时,可利用字符串函数和操作运算,将每一位取出,存入数组中。 void init(int a[]) { string s; cin>>s; len=s.length(); for(i=1;i<=len
阅读全文