1401专题

uva 10061 How many zero's and how many digits ?(不同进制阶乘末尾几个0)+poj 1401

题意是求在base进制下的 n!的结果有几位数,末尾有几个0。 想起刚开始的时候做的一道10进制下的n阶乘末尾有几个零,以及之前有做过的一道n阶乘的位数。 当时都是在10进制下的。 10进制下的做法是: 1. n阶位数:直接 lg(n!)就是得数的位数。 2. n阶末尾0的个数:由于2 * 5 将会在得数中以0的形式存在,所以计算2或者计算5,由于因子中出现5必然出现2,所以直接一

HDU 1401 Solitaire(双向搜索)

题目:LINK 题意: 在一个8×8的棋盘中,给定你4个棋子A,再给你4个棋子B,问你在8步之内能不能够从A位置移动到B位置; 规则:棋子能能上下左右移动,同时能跳过相邻的棋子到达相邻棋子的空地方; 如果直接搜索无论是bfs还是dfs都会TLE的,可以发现无论是从开始的棋盘搜索到最终的棋盘,还是从最终的棋盘搜索到开始的棋盘是一样的。 所以我们从开始的棋盘搜索4步,从最终的棋盘搜索4步,检测

东方博宜 1401. 浪尖数?

东方博宜 1401. 浪尖数? 重难点:这道题卡了有点久,在for循环里面要重点考虑起始值的问题,因为这组数的第一个数和最后一个数按照题意是不会成为浪尖数的。 #include<iostream>using namespace std;int main(){int a[101] ;int n ;cin >> n ;for(int i = 0 ; i < n ; i++){cin >> a

1401:机器翻译

分析:模拟题,用vector模拟队列实现 指向queue队首的l指针,指向queue队尾的r指针(用push_back()代替也一样) 指针更新情况为: 搜索有单词,不做处理搜索无单词,判断内存长度,若足够添加单词并计数,若不足则删除单词再添加单词并计数 #include<iostream>#include<vector>using namespace std;int main() {

2140. 解决智力问题;1401. 圆和矩形是否有重叠;901. 股票价格跨度

2140. 解决智力问题 核心思想:动态规划。dp[i]表示解决i-n-1的问题所能获得的最高分数,注意需要倒叙遍历,因为i的状态由后面的状态转移过来的。 1401. 圆和矩形是否有重叠 核心思想:分情况讨论,圆心情况。借用别人一张图说明。 901. 股票价格跨度 核心思想:单调栈,维护一个单调递减栈,左边第一个数就是比当前值大的坐标,这个坐标和自己坐标之间的数就是满足要求的

【字符串哈希】CH_1401 兔子与兔子

题意 给出一个字符串,判断其中的两个区间是否相等。 思路 设 f [ i ] f[i] f[i]为字符串 s [ 1 ∼ i ] s[1\sim i] s[1∼i]的 b a s e base base进制哈希值,则: f [ i ] = f [ i − 1 ] ∗ b a s e + s [ i ] f[i]=f[i-1]*base+s[i] f[i]=f[i−1]∗base+s[i]

[Leetcode] 每日两题1401 1716 -day72

1401. 圆和矩形是否有重叠 计算矩阵 边界和圆心的最近距离, 计算 x方向的最近点,以及y方向的最近点,然后再拿距离和半径比较就行了 class Solution:def checkOverlap(self, radius: int, xCenter: int, yCenter: int, x1: int, y1: