首页 > 其他分享 >集训Day 2

集训Day 2

时间:2023-07-25 20:33:11浏览次数:20  
标签:暴力 int 程序 long 集训 include Day

A题:

 B题:

 

比赛开始先整了第一题,由于题面很高级一看就是我写不出正解的样子,就先写了一个暴力,然后开始考虑如何优化,突然开窍啦~前缀和!然后瞎优化了一番,总算过了所有样例(get100points),第二题吗…………看了半天重构了3次思路,还是连样例1都爆零。然后就放弃了好一点的解法选择了暴力,高兴的写出了暴力,但是,不出意外的话就要出意外了,最后要交程序的时候我如弱智一般,将怕过不去数据全heck了一遍,本来60pt的程序被我改成了0pt,为什么呢?输入的n判断的i,最后由于程序判断i未定义,原地升天。

B题:

 

设f[i][j]表示首位是i,结尾是j的数字的个数,那么,符合条件的数字必然被f[i][j]或f[j][i]统计,所以只需要将[1,n]中的数字统计进入f数组,接下来枚举i,j同时计算答案即可。 A题程序:
#include<bits/stdc++.h>
using namespace std;
const int N=1e5+10;
long long n,l,r,a[N],sum[N],maxn=-100;
int main()
{
    ios::sync_with_stdio(false);
    freopen( "times.in", "r", stdin );
     freopen( "times.out", "w", stdout );
    cin>>n>>l>>r;
    for(int i=1;i<=n;i++) cin>>a[i];
    sum[1]=a[1];
    for(int i=2;i<=n;i++) sum[i]=sum[i-1]+a[i];
    for(int i=1;i<=n;i++)
    {
        long long start=max((long long)i-l,(long long)1),end=min(n,(long long)i+r);
        maxn=max(maxn,(sum[i]-sum[start-1])*(sum[end]-sum[i-1]));
    }
    for(int i=1;i<=n;i++)
    {
        long long start=max((long long)i-l,(long long)1),end=min(n,(long long)i+r);
        if((sum[i]-sum[start-1])*(sum[end]-sum[i-1])==maxn) printf("%d ",i);
    }
    return 0;
}

B题程序:

#include<bits/stdc++.h>
using namespace std;
int f[114][514]; 
void s114514_1919810(int i)
{
    string s=to_string(i);
    f[s[0]-'0'][s.back()-'0']++;
}
long long c1145141919810(int n)
{
    for(int i=0;i<10;i++) for(int j=0;j<10;j++) f[i][j]=0;
    for(int i=1;i<=n;i++) s114514_1919810(i);
    long long res=0;
    for(int i=0;i<10;i++) for(int j=0;j<10;j++) res+=(long long)f[i][j]*f[j][i];
    return res;
}
int main()
{
    ios::sync_with_stdio(false);
    int n114514_1919810;
    cin>>n114514_1919810;
    cout<<c1145141919810(n114514_1919810);
    return 0;
}

 

 

标签:暴力,int,程序,long,集训,include,Day
From: https://www.cnblogs.com/wjk53233/p/17580957.html

相关文章

  • 集训Day 1
    A题: B题: 刚开始看了眼T1觉得简单,就敲了一个暴力(get65)过了所有样例后就直奔T2,T2是拓扑排序的板子,但由于数据就只写了n^2算法(get100)又过了所有样例,信心暴涨(当时想着能AK)但T1由于没写筛法,卒。giao~t1其实很简单就是一个筛法模板(但我居然没看出来!)埃氏筛、欧拉筛均可(当然由......
  • 暑假集训D2 2023.7.25 补题
    D.P1796汤姆斯的天堂梦这道题目非常ex,赛时死活调不出来,思路是对的,容易发现是一个DAG,所以直接DP就好,虽然后面看题解AC了,发现是重边的问题。但还是来记录一下这道ex的题目,警醒一下自己切记注意重边!!如下两份代码,一份爆0,一份AC#include<stdio.h>#include<stdlib.h>#include<s......
  • day119 - spring-获取bean
    获取bean根据id获取上一篇的入门文章讲解的就是根据id获取bean的方式根据类型获取@TestpublicvoidtestIOC(){//获取ioc容器ApplicationContextioc=newClassPathXmlApplicationContext("spring-ioc.xml");//获取beanStudentstudent=ioc.getBean......
  • day13
    一、[第五空间2021]alpha101.foremost分离,得到png和jpg,两张图片一样,猜测是盲水印隐写,得到一张类似于flag的图片pythonbwmforpy3.pydecode1.jpg2.pngresult.png2.颜色异或转换一下,得到flag二、messy_traffic1.打开流量过滤HTTP流,发现了文件上传,直接导出HTTP对象文......
  • 2023长郡集训 动态规划笔记
    动态规划原理何为动态规划?动态规划(\(\text{Dynamicprogramming}\)),简称DP。DP并不是一种算法,与模拟、贪心一样,而是一种解决问题的方式。DP的基本思想为「将给定的问题拆分为一个个规模更小的子问题,直到子问题可以直接解决,返回/保存这个值,再根据方程一步步推出原本问题的答......
  • 7.25 day2数据结构优化dp
    战绩:100+100+20+54=374T1据lxl说是为了成绩好看加的题,难度大概cspjT1T2朴素dp然后树状数组优化一下T3赛时脑抽链,写了个dp,一直想优化dp,其实贪心就好了,过程更加简洁,优化很显然先将区间剖分成两段端点\(s_i=s_j\)相同的多条线段将区间每个点吸附到离他右边最近的一个线段......
  • 指针day1
    指针一:指针代码示例B站视频代码#include<stdio.h>intmain(){ inta=1025; int*p; p=&a; printf("sizeofintegeris%dbytes\n",sizeof(int)); printf("Address=%d,value=%d\n",p,*p); printf("Address=%d,value=%d\n&......
  • 算法练习-day29
    贪心算法435.无重叠区间题意:给定一个区间的集合 intervals ,其中intervals[i]=[starti,endi] 。返回需要移除区间的最小数量,使剩余区间互不重叠 。实例:思路:本题和452.用最少数量的箭引爆气球做法非常类似,大家可以先看看我之前的文章。本题我们只需要统计重叠的区域,代码如......
  • 牛客多校 Day3
    H哥德巴赫J诈骗A签到D要么全\(0\),要么全\(1\)B不得不说我真的纯纯SB真的。考场做法是先转成概率,然后就是计算长度大于等于\(i\)概率之和。\(f(i,j,0/1)\)前\(i+j\)个位置填\(i\)个小于等于\(n\)的数,\(j\)个大于\(n\)的数,最后一段是上升/下降的......
  • day01课程回顾
    day02:Java相关概念一、回顾程序:解决问题编写的一系列计算机指令的有序集合计算机语言低级语言机器语言汇编语言高级语言面向过程面向对象:JavaJava发展Java之父:詹姆斯高斯林1996年JavaJDK5.0是Java的分水岭我们用JDK8DOS命令Java特......