![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
poj
Shallow_Carl
Never Give Up!
展开
-
输入输出任意长度的数组
吐槽昨晚看了一晚上博客,发现大部分博客都没有实现这样一个功能:键盘输入不定长度的数组,这样一个看似简单的事情实现起来真的不怎么容易(太菜了 ).甚至有些博客上的代码明明放在VS上根本运行不了,却放在博客上误人子弟,我…思路先输入字符串,再将字符串转化为整数,使用string的功能string.str()和头文件sstream中的stringstream类的功能完成转化,万事俱备只欠代码,来,上代码!代码#include<vector>#include<string>#i原创 2021-01-07 13:32:12 · 3827 阅读 · 4 评论 -
贪心算法_POJ1328和POJ2586小结
POJ1386链接http://poj.org/problem?id=1386题意就是说给定小岛坐标,给出雷达覆盖范围,求出雷达最小个数我们发现除却岸边到雷达的y轴距离大于覆盖半径r之外,总是可以与海岸线有一个或者两个交点,我们可以使用一个结构体(含有连个double类型的变量来进行存储)于是原题目就变成了关于线段的最小重叠问题了,我们的贪心策略也很简单 :首先:1>对结构体按照left大小进行排序2>判断当前temp.right>line[i].right时,直接令temp=原创 2021-05-09 21:49:21 · 283 阅读 · 0 评论 -
快速幂运算的两种写法以及POJ2109取巧办法
快速幂的递归和非递归递归(压栈弹栈花费空间更多些)我们先来看看递推方程1.>a^n = a^(n/2) * a^(n/2) , 当n为偶数时2.>an=a(n-1)*a , 当n为奇数时3>1 , 当n等于0时这样最后的程序就很简单了.非递归我们把a^b 中的b写成二进制形式,比如2^10,10的二进制形式为1010,那么 2^10= 2^0 *(2^2) * (2^0) *(2^8)我们可以发现这样从小到大依次累加,每次是上一次的两倍,就像一颗树形结构一样,最..原创 2021-05-09 21:31:47 · 138 阅读 · 0 评论 -
POJ初阶枚举算法小结_POJ1753+POJ2965
POJ1753:http://poj.org/problem?id=1753POJ2965:http://poj.org/problem?id=2965详细注释见代码:反思:两道题都很类似,第一道题是翻转四周,第二道题是翻转整行整列,都是求翻转的最小步骤,我们发现这些题目都看似无从下手,只能一个一个试一试(大神勿喷~)这就是枚举啊,我们使用step来限制树的高度,使用前序遍历来进行翻转,回溯,看似复杂,实际上这两句话仔细体会,再画个树形图,差不多理解就够了.#include<iostream原创 2021-05-09 20:53:04 · 115 阅读 · 0 评论 -
关于使用贪心思想求解数组连续最大和以及dp解子矩阵的最大和问题通讲
一_数组最大连续子序列题目描述:给定一个数组,求出它的最大连续子序列和思路:根据贪心策略,我们知道,由局部最优可以推导出全局最优1.那么在本题中什么是局部最优呢?我们可以看出每选取的一个集合(一个元素或多个元素)它的和为正数时,它对我们的最大和的全局最优是有帮助的2.那么什么时候对我们的全局最优是没有帮助的呢?当集合内元素的和为负数时,我们肯定不会选取这个集合内部的这几个相邻的元素.再重新选取紧邻集合右边的下一个正向元素,作为一次新的开始.3.我们在不断选取的过程中,如何记录最大值MAX呢?原创 2021-01-22 18:48:06 · 149 阅读 · 0 评论 -
POJ1579--记忆化递归
#include <stdio.h>#include <string.h>int w[25][25][25];int f(int a,int b,int c){ if(a<=0||b<=0||c<=0) return 1; if(a>20||b>20||c>20) return w[20][20][20]=f(20,20,20); if(w[a][b][c]!=0) return w[a][b][c]; if原创 2021-01-19 12:15:01 · 236 阅读 · 2 评论