![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
每日刷题
chenpidaxia
目前只是一个学生
展开
-
每日刷题:移除数组中重复元素
思路:双指针搜索,i固定j往前扫描直到元素不相等,计算(j-i)->代表i所指的元素有多少个相同,减1则是该元素应该删去的次数。 同时i指向第一个新元素,j继续向前搜索。#include <iostream> using namespace std; int main() { int n; int count=0; int a[1001]; int i=1,j=2;原创 2017-04-10 18:07:27 · 410 阅读 · 0 评论 -
每日刷题:lightoj-1006 - Hex-a-bonacci
林神推荐了这个OJ给我,发现还真的是挺好适合小白练手。 题目如下: 就是给出一个代码,让我们优化,直接提交它给的代码的话会超时。 这题看起来很像斐波拉契数列,所以也能想到超时的原因是当n比较大时,递归调用树展开的很大,重复计算次数多,而且结果是可能溢出的,所以输出的时候需要mod10000007(好吧这个数的来历,我也不知道,以后在探寻)。 题目比较水,写过斐波拉契的都知道可以用个滚动数原创 2017-04-11 17:23:22 · 474 阅读 · 0 评论 -
每日刷题:从尾到头打印链表
老生长谈,从头打印一个链表。也不是什么难题,单向链表只能从头走到尾。从尾到头打印很明显的先进后出性质。即可以用一个栈来装遍历结果,也可以用递归来解。总之,本质上都是用一个链表模拟栈。 用栈的解法 /** * struct ListNode { * int val; * struct ListNode *next; * ListNode(int x) : *原创 2017-04-12 22:17:24 · 277 阅读 · 0 评论 -
每日刷题:lightoj-1004 - Monkey Banana Problem
终于开始写人生第一道DP了。 第一题,耳熟能详的猴子吃香蕉问题。 题目的话,就放出来了,去lightoj上就能找到。 在一个菱形中找到一条路径,使得猴子能吃到的香蕉数最多。 看下图,题目比较容易想到,用一个相同的表记录走到某一个为止能吃到的香蕉数,每次决策取最大的就是了。 实际编程时,我们是以二维数组来填表的,所以请把下图想象成一个实心右箭头’>’样子的三角形 7 0 0原创 2017-04-18 17:18:01 · 482 阅读 · 0 评论 -
每日刷题:lightoj 1005 - Rooks
#include #include #include #include long long solve(int N) { int K=0; scanf("%d",&K); if(K>N) return 0; long long dp[31][31];//定义dp[i][j]:边长为i的正方形,有j个rooks所能组成的不攻击数量 memset(dp原创 2017-04-24 00:49:01 · 348 阅读 · 0 评论 -
hiho字体大小设置(二分搜索)
https://hihocoder.com/problemset/problem/1288题目大概意思就是我们有N个自然段,每个自然段有ai个字符,手机屏幕宽W,长H,让我们字符可设定的最大字体号S,比如字体号为S,则一行只能显示【W/S】向下取整个字符,一个页只能娴熟【H/S】行,最终所有自然段显示的页面不超过P页。 每一个自然段都重新的一行开始显示,自然段之间没有空余的行。 基本思路就是当S原创 2017-05-06 20:31:04 · 290 阅读 · 0 评论 -
hiho任务分配
一道区间的题目,画个图就可以知道,最少的机器数目=被最多运行区间覆盖的数目。只要维护一个记录当前最大区间覆盖数目就要,重合边界点要注意,起点要在终点的前面。#include<iostream> #include<vector> #include<algorithm> using namespace std; //记录点,true为一个区间的起点,false为一个区间的终点 struct point{原创 2017-06-21 14:06:59 · 247 阅读 · 0 评论