Logo 贾永菁的博客

博客

新博客

2022-10-03 15:16:20 By 贾永菁

include

using namespace std; int k[114514],p[114514],t[114514],f[114514]; long long sum; int main() { int n; cin>>n; for(int i=0;i>k[i]>>p[i]>>t[i]; for(int i=0;i<n;i++) if(k[i]==0) { int j=i+1; while(t[j]-t[i]<=45&&j<n) { if(k[j]==1&&p[j]<=p[i]&&f[j]==0) { p[j]=0; f[j]=1; break; } j++; } } for(int i=0;i<n;i++) sum+=p[i]; cout<<sum; return 0; }

这里是贾

2022-08-15 21:28:31 By 贾永菁

I am back

新博客

2022-06-11 18:18:06 By 贾永菁

敦敦在回家路上看见许多车停在停车位上 他把每辆车的车牌号里的数字记下来求和 但是他给自己增加了亿点难度任意 两个选出的车牌不得相临 你能帮敦敦求出车牌号总和的最大值吗?

输入格式

第一行输入一个数,n。

第二行输入n个以空格隔开的数。

输出格式

一个整数,表示和的最大值。

样例数据

input

5

5 3 7 9 1

output

14

数据范围

1<=n<=10^4

1<=ai<=10^5

今日题解

2022-05-30 19:16:56 By 贾永菁

这一题是要每次找最大的正方形,种好

是公式题

公式如下

    if(x<y)

        swap(x,y);    首先要保证y比x小

    sum+=4*y*(x/y);     找出和较小边长一样的正方形,因为这种正方形一定最大,至于为什么是*(x/y)因为可能一次能种多块一样大的

    x%=y;           更新x的值

今日题解

2022-05-27 19:33:08 By 贾永菁

这一题不怪大家不会主要是一看标签就腿软

归并排序 树状数组 离散化 递归!!!

你瞧瞧,您看看,这还是人做的玩意儿?

大家都学过归并排序吧,一句话分而治之

俗一点讲,就是先把这个数组切碎,碎成渣渣的那种,再给他拼到一起。

摘自——小马语录

逆序对呢,只要在他碎成渣渣拼着的时候看一下

A渣渣队:5 6 7 8

B渣渣队:1 2 3 4

先拿B队的第一个跟A队的第一个比1 < 5对不对

所以就有4个逆序对

发现加的是序列中点的下标-当前A队下标+1

可能还没理解

贴个代码

int i=l,j=m+1,k=0;   //i为当前队首下标,j是也就相当于这个队列切一半分出的第二个队列的队首下标,k是合出的新队列的元素个数兼下标

while(i<=m&&j<=h)

{

    if(a[i]>a[j])    如果a[i]>a[j]  j默认是>i的

        b[k++]=a[j++],ans+=m-i+1;      设队列为 3  4  1  2 m=1,则ans+加了1-0+1  是不是正好加了2 

    else

        b[k++]=a[i++];

}

上面的是归并代码中的一部分

归并完全代码自己想

OK完事儿

又是自律的一天

贾永菁 Avatar