分治法
Lawrence_121
千里之行,始于足下
展开
-
二分查找
已知有序的序列,比如:2,3,3,5,9,9,9,12,12,13,15,22,22,22,22,25,25,23,91,95有整数x,比如: x=23要求找到一个刚好比x稍微大一点的元素位置当数组较大的时候,二分查找可加快速度。思路:进行分区#include<iostream>using namespace std;//重载 含begin,不含end 半开区间, 例如:[1...原创 2018-03-24 16:42:55 · 188 阅读 · 0 评论 -
大数的乘法
用串的形式表示大数的乘法。即求类似: "23234845847839461464158174814792" * "6457847285617487843234535"要求结果返回一个串。思路: 对于大整数的乘法,我们可以利用分治法将其两个字符串从中间截断,将两字符串的后半部分,进行相乘,记得进位。对于前半部分相乘,前半部分记得补0,然后将两个数相加。#include<st...原创 2018-03-25 20:23:26 · 285 阅读 · 0 评论 -
环形格子涂色
如图,组成环形的格子需要涂3种颜色。它们的编号分别是1~14相邻的格子不能用相同的颜色。涂色方案的数目是:16386当格子数目为50的时候,求涂色方案总数。思路: 可以将这个环从1和14之间剪开14.... 21分两种情况:当2和14颜色相同时,1这个位置有2种填法当2和14颜色不相同时,1这个位置有 1种填法 #include<stdio.h>int main()...原创 2018-03-26 20:44:44 · 1486 阅读 · 0 评论