Contest2967 - 2022-2023-2 ACM集训队每周程序设计竞赛(1)

问题 C: 付哥题做不完了

内存限制:1024 MB时间限制:2.000 S评测方式:文本比较命题人:admin提交:323解决:44

返回比赛提交提交记录侧边提交

题目描述

付哥今天在做题,他有两个题单AB,里面的题目数量分别为nm,每个题目题目付哥做完都需要花一定的时间,他规定自己在K的时间内尽可能多的做题。

但是目前有一个条件限制他,每个题单中的题只有当此题前面的题目做完时才能解锁,但是付哥能随时转换题单做题。

问付哥今天最多能做完几道题?

输入

n m K

题单A从前往后付哥做此题所需花的时间 A1 .. An

题单B从前往后付哥做此题所需花的时间 B1 .. Bm

1≤ n,m≤ 200000

1≤ K,Ai,Bi≤ 109

输出

最多的做题数

样例输入 复制
3 4 240
60 90 120
80 150 80 150
样例输出 复制
3

刚拿到题很懵,看了下题解,嗷嗷,原来是前缀和+遍历,以后要注意2e5范围内的数据要考虑遍历这种方法还有前缀和!!!

#include<bits/stdc++.h>
#define int long long
using namespace std;
 
int a[200005];
int b[200005];
  
signed main()
{
    int n,m,k;
    cin>>n>>m>>k;
    int temp;
    for(int i=1;i<=n;i++)
    {
        cin>>temp;
        a[i]=a[i-1]+temp;
    }
    for(int i=1;i<=m;i++)
    {
        cin>>temp;
        b[i]=b[i-1]+temp;
    }
    int ia=0;
    int ib=m;
    int all=0;
    int ans=0;
    for(int i=0;i<=n;i++)
    {
        if(a[i]>k)
            break;
        while(a[i]+b[ib]>k)
        {
            ib--;
            if(ib==0)
                break;
        }
        if(i+ib>ans)
            ans=i+ib;
    }
    cout<<ans<<endl;
}
 

问题 D: 约数的和

内存限制:1024 MB时间限制:1.000 S评测方式:文本比较命题人:admin提交:152解决:34

返回比赛提交提交记录侧边提交

题目描述

对于一个正整数X,f(X)X正因数的个数。

给一个正整数N,求∑K=1N K∗f(K)

输出

N

1≤ N≤ 107

样例输入 复制
4
样例输出 复制
23
对于一个数i,在n内,以i为因子的数有n/i个,显然他们是一个等差数列,那么对它求和就可以了
#include<bits/stdc++.h>
#define int long long
using namespace std;

int a[10005];
 
signed main()
{
    int n;
    cin>>n;
    int ans=0;
    for(int i=1;i<=n;i++)
    ans+=n/i*(n/i+1)/2*i;
    cout<<ans<<endl;
}

问题 E: 数数问题

内存限制:1024 MB时间限制:2.000 S评测方式:文本比较命题人:admin提交:56解决:12

返回比赛提交提交记录侧边提交

题目描述

问有多少对长度为N的数组AB满足以下条件。

  • 1≤ Ai,Bi≤ M

  • Ai≠ Bi (1≤ i≤ N)

  • Ai≠ AjBi≠ Bj (1≤ i< j≤ N)

输入

N M

1≤ N≤ M≤ 5× 105

输出

由于答案可能很大,输出其对109+7取模的结果。

样例输入 复制
2 2
样例输出 复制
2

不会捏

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

嗯嗯你说的对

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值