题解列表

筛选

吃桃子问题

解题思路:原本有若干桃子,猴子每天吃掉剩下的桃子的一半多一个,注意,是先吃一半,再吃一个。到了第N天时,还剩下1个桃子。这一题可以用循环倒推的方式来解题。从第一天到第N-1天每天都是先吃一半,再吃一个,那么我们就可以从第N-1天往前推,先加一个,再乘以2。

DFS,最优解

解题思路:本题可以用dij算法,但是我感觉dfs更好想,要求最短路径,用递归的话,如果去第2个城市,之前已经去过了,再去一边结果是相同的,所以最优解就是每个城市只去一次,用boolf[N]来判断,然后经行在dfs中加上回溯,即可注意事项:设置ans时用0x3f3f3f3f这个最大值容易超时;参考代码:

巧解大数问题

摘要:#include <iostream> #include <cmath> using namespace std; /* 直接使用 unsigned long long 仍然无法满足我们……

矩形总面积(附详细解释)

解题思路:*思路算法*使用一个八个位置的数组来容纳坐标点*(x1,y1)(x2,y2)(x3,y3)(x4,y4)*对于不相交的矩形,其面积为*(x2-x1)*(y2-y1)+(x4-x3)*(y4-y3)**对于相交的矩形*其左下角和右上角的坐标点确定方法*假设其点[左下角(m1,

数位排序(python)

```hash_list=[[]foriinrange(55)]#hash_list[n]为各位和为n的数值hash_list_n=[0foriinrange(55)]#hash_list_n[n]为各位数和为n的数量#计算各位和defcal_total_sum(n):total_sum=0forii

纸张尺寸,递归解决(python)

lw函数矫正当前长宽cal函数递归解决,An就是重复折叠n次,n=0时结束```deflw(l,w):returnmax(l,w),min(l,w)defcal(n,l=1189,w=841):ll,ww=lw(l,w)ifn==0:returnll,

T1457Power Strings--KMP

```cpp#include#include#includeusingnamespacestd;constintN=1e6+100;charstr[N];intnex[N];intres=0;signedmain(){while(scanf("%s",

信息学奥赛一本通T1437-扩散

摘要:解题思路: 二分+并查集注意事项:参考代码:#include <iostream>#include <algorithm>using namespace std;#define int long lo……