首页 > 其他分享 >暑假补题记 1

暑假补题记 1

时间:2023-07-16 16:11:54浏览次数:29  
标签:int sum long 任务 暑假 ans 题记 include

 题目意思就是:有n个任务,每一个任务都有K个小任务每一个小任务都有指定时间,之后做完一个大任务额外加一分,然后给你M分钟,问在M分钟里,你需要得到最多分是多少。

题解:首先对K个小任务排个序,对n个大任务进行遍历,就是你做完一个大任务,其他的时间全部搞小任务,然后一个个n进行比较,看看做几个大任务最优进行了

 

#include <bits/stdc++.h>
#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
#include <queue>
#define int long long
using namespace std;
const int N=1000;
int a[N],b[N];
::int32_t main(){
    int n,k,M;
    cin>>n>>k>>M;
    int aa=0;
    for(int i=1;i<=k;i++)
    {
        cin>>a[i];
        aa+=a[i];
    }
    sort(a+1,a+1+k);
    int sum=0,ans=0,kpl=0,to=0;
    for(int i=0;i<=n;i++)
    {
        kpl=aa*i;
        if(kpl>M)break;
        sum=M-kpl,ans=(k+1)*i;
        for(int j=1;j<=k;j++)
        {
            if(a[j]<=sum)
            {
                int x=sum/a[j];
                if(x>=n-i) x=n-i;
                sum=sum-a[j]*x;
                ans+=x;
                if(j==k) ans+=x;
            }
        }
        to=max(to,ans);
    }
    cout<<to;
    return 0;
}

 题意:在数组中找3个最小的数组成三元组,问有多少个这样小的三元组,其实就是有重复的数字进行选择,然后全排列。

题解:先排列,看看有多少个第3个数在这个数组里,然后就排列即可。

#include <bits/stdc++.h>
#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
#define int long long
using namespace std;
const int N=1e6+10;
int a[N];
::int32_t main(){
    int n;
    cin>>n;
    for(int i=1; i<=n; i++)
    {
        cin>>a[i];
    }
    sort(a+1,a+n+1);
    int sum=0;
    for(int i=1; i<=n; i++)
    {
        if(a[i]==a[3]) sum++;
    }
    if(a[1]==a[2]&&a[2]==a[3]){
        cout<<(sum*(sum-1)*(sum-2))/6;
        return 0;
    }
    if(a[2]==a[3]){
        cout<<(sum*(sum-1))/2;
        return 0;
    }
    cout<<sum;
    return 0;
}

 

 

 

题意: 意思就是这个数字的每一位相加原来的数减去即可,然后如果比s大就是一个真正大的数字,然后给一个1到n的区间问这个区间有多少个真正大的数字。

题解:用二分去寻找即可。

#include <bits/stdc++.h>
#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
#define int long long
using namespace std;
const int N=1e6+10;
int wei(int n){
    int a,ans=0;
    while (n){
        a=n%10;
        ans=ans+a;
        n=n/10;
    }
    return ans;
}
::int32_t main(){
   int n,s;
   cin >> n >> s;
   int l=1,r=n;
    while (l<=r)
    {
        int mid=(l+r)/2;
        if(mid-wei(mid)>=s) r=mid-1;
        else l=mid+1;
    }
   if(r<n)
       cout<<n-l+1;
   else
       cout<<0;
    return 0;
}

 

标签:int,sum,long,任务,暑假,ans,题记,include
From: https://www.cnblogs.com/whatdo/p/17558000.html

相关文章

  • 暑假生活1
    放假第一周没放太多时间在学习上,稍微了解了一下大数据技术方面的知识,总结了一下这学期在知识层面的缺漏点。说实话有很多地方是不足的,可能是因为对浏览器等信息检索设备的利用率不够,加之我很难在对Javascript、CSS、HTML等语言了解不足的情况下实现简单的web界面的搭建以及对部......
  • 暑假第一周总结
    第一周主要学习了python还有hadoop的前期内容,还有Linux的基本命令,shell的基本命令python里面学习了python的注释方法,python里面的基本的三个函数input(),print(),type(),python的格式化输出。Hadoop里面学习了Hadoop是什么,Hadoop的基本概念,Hadoop里面的三大分类HDFS,YARN,MapReduce。安装了......
  • 7.15--暑假第一周总结
      这一周下载并配置好了VMWare虚拟机,Datagrip用于连接hive数据库,下载好了FinalShell用于便利LInux虚拟机指令操作。  学习完了Linux命令,看完了黑马程序员里关于Linux小白的全部内容,学习了大数据视频内容,一共88集目前已经看到52集,学习了mapreduce,yarn以及hive数据库的部分......
  • 高等数学暑假打卡行动 --【Day 1】-- 初等函数回顾+极限概念
    今日重点基本初等函数和初等函数区别基本初等函数包括:幂函数\(y=x^a\)、指数函数\(y=a^x\)、对数函数\(y=log_ax\)、三角函数\(y=sinx,y=cosx,y=secx,y=cscx\)和反三角函数\(y=arcsinx,y=arccosx,y=arctanx,y=arccotx\),多项式函数\(a_nx^n+a_{n-1}x^{n+1}+...+a_1x+......
  • 2023暑假集训杂题
    2023暑假集训杂题解题报告UOJNOIRound#7Day1那些你不要的题目链接题目描述给定长度为\(n\)的序列\(A\),保证\(n\)为奇数,你是先手,每次先手与后手分别取相邻的\(2\)个数,并将剩下的数合并。先手希望最后剩下的数最大,后手希望剩下的数最小,在最优策略下,最后剩下的数是多......
  • 2023-07-09~07-15第一周暑假生活
    本周平均学习时间应该是2小时每天,代码时间要短一点在1个小时的样子,解决问题总时长估计是三个小时学习内容和代码内容大部分是js的知识,也有在学习Linux的操作和搭载大数据环境。下周计划重心仍然是放在熟练掌握javaweb目标上——继续学习练习HTML、学习Springboot。下个月再把......
  • 【总结】暑假test2考试总结
    暑假test2考试总结T1考试题目#1846.看电视(watching)考试思路这道题比较的简单,用贪心就做出来了(为啥有人说\(DP\)啊)考试代码//watching//codeby:st20250113#include<bits/stdc++.h>usingnamespacestd;constintMAXN=1e7+10;longlongn,k;long......
  • 暑假第二周总结
      本周学习到的内容有HDFS集群启停命令,如何使用命令操作HDFS文件系统,并在DataGrip中安装了图形化BigDataTools插件用于对HDFS中文件的操作,HDFS的存储原理及数据的读写流程;还学习了分布式计算,MapReduce用来做分布式计算,还有yarn,用来做资源的分配管理。YARN容器是从角色分配资源......
  • 暑假第一周总结
    本周我主要学习了Linux的安装和Shell语言的基础知识,并且遇到了一些困难。首先,我成功安装了Linux操作系统,并对其进行了初步的配置。通过这个过程,我对Linux的安装和基本操作有了更深入的了解,并学会了使用命令行进行各种操作。在学习Shell语言方面,我主要学习了Shell脚本的编写和执行......
  • leetcode刷题记录Java
    难度等级:简单给你两个字符串word1和word2。请你从word1开始,通过交替添加字母来合并字符串。如果一个字符串比另一个字符串长,就将多出来的字母追加到合并后字符串的末尾。返回合并后的字符串。classSolution{publicStringmergeAlternately(Stringword1,St......