K、Many Littles Make a Mickle(签到题)
先从最简单的签到题开始吧
#include<iostream>
#include<cstdio>
#include<math.h>
#include<algorithm>
#include<cstring>
#include<queue>
using namespace std;
long long ans;
long long f(int n)
{
if(n<=0)return 0;
ans=n*n+f(n-1);
return ans;
}
int main()
{
int t;
cin>>t;
while(t--)
{
ans=0;
int n,m;
cin>>n>>m;
ans=f(n);
printf("%d\n",ans*m);
}
return 0;
}
L、It Rains Again
题意:给你两个坐标,看他能覆盖x有多长,这个比较标准的差分。只用考虑到他是否覆盖到这个区域,即差分数组的数组元素为正数的个数。
#include<iostream>
#include<cstdio>
#include<math.h>
#include<algorithm>
#include<cstring>
#include<queue>
#include <math.h>
using namespace std;
int a[100010];
int main()
{
int t,_max=-1;
cin>>t;
while(t--)
{
int x1,y1,x2,y2;
cin>>x1>>y1>>x2>>y2;
a[x1]++;
a[x2]--;//差分
_max=max(_max,max(x1,x2));
}
int ans=0;
for(int i=0;i<=_max;i++)
{
a[i]+=a[i-1];
if(a[i])
ans++;
}
cout<<ans<<endl;
return 0;
}
B、Continued Fraction
题意:其实就是递归。但是我这一题的代码实现有点慢,希望自己在代码实现上面有一定突破。
#include<iostream>
#include<cstdio>
#include<math.h>
#include<algorithm>
#include<cstring>
#include<queue>
using namespace std;
int _count=1;
queue<int>q;
void f(int x,int y)
{
int m=y/x;
q.push(m);
_count++;
if(y%x==0){
cout<

本文介绍了多个算法题目,包括动态规划、递归、差分数组和LRU缓存等概念。通过实例分析,展示了如何解决这些算法问题,并提供了关键代码实现,有助于提升算法理解与应用能力。
最低0.47元/天 解锁文章
455

被折叠的 条评论
为什么被折叠?



