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

集训Day 5

时间:2023-07-28 19:56:49浏览次数:33  
标签:int sum cin long 集训 freopen Day

A题:

 

 B题:

 

这是集训以来感觉最好的一次,比赛开始,先看了一眼A题问题不大,直接联想到了前缀和,由于这里是异或,就将原来的求[l,r]区间内和的公式:sum[r]-sum[l-1] 改为sum[r]^sum[l-1](根据的是异或的自反性)直接A掉(get100pt),继续看B题,B题由于我基本没做对过,就只是看了几眼,写了一个暴力,但我不甘心就一直在举例子,终于发现了这题的答案与正负号的个数有关,我当时就震惊了,又举了十来个例子来验证,确认无误后直接上程序A了(get100pt)总分200AK。

A题程序:

 

#include<bits/stdc++.h>
using namespace std;
const int N=2e3+10;
long long a[N],n,sum[N],maxn=-100;
int main()
{
    freopen( "xor.in", "r", stdin );
     freopen( "xor.out", "w", stdout );
    ios::sync_with_stdio(false);
    cin>>n;
    for(long long i=1;i<=n;i++) cin>>a[i];
    sum[1]=a[1];
    for(long long i=2;i<=n;i++) sum[i]=sum[i-1]^a[i];
    for(long long i=1;i<=n;i++) maxn=max(maxn,sum[i]);
    for(long long i=2;i<=n;i++)
    {
        for(long long j=i;j<=n;j++)
        {
            maxn=max(maxn,sum[j]^sum[i-1]);
        }
    }
    cout<<maxn; 
    return 0;
}

 B题程序:

#include<bits/stdc++.h>
using namespace std;
const int N=1e5+10;
long long n,a[N],sum=0,minn=1e9,t=0;
int main()
{
    freopen( "flip.in", "r", stdin );
     freopen( "flip.out", "w", stdout );
    ios::sync_with_stdio(false);
    cin>>n;
    if(n==1)
    {
        long long t111;
        cin>>t111;
        cout<<t111;
        return 0;
    }
    for(long long i=1;i<=n;i++)
    {
        cin>>a[i];
        sum+=abs(a[i]);
//        cout<<abs(a[i])<<" ";
        minn=min(minn,abs(a[i]));
        if(a[i]<0) t++;
    }
    if(t%2==0) cout<<sum;
    else cout<<sum-minn-minn;
    return 0;
}

 

标签:int,sum,cin,long,集训,freopen,Day
From: https://www.cnblogs.com/wjk53233/p/17588768.html

相关文章

  • openEuler TechDay——熊博带你玩转欧拉
    openEuler是什么?是打破惯性的技术突破?是倾力合作的生态共建?还是踏浪前行的商业反哺?**openEulerTechDay本期邀请到了欧拉技术委员会熊伟博士,以对话的方式为大家答疑解惑,全方位立体剖析欧拉发展。**熊博将带你走入开源世界,透视欧拉最新进展,分享开源社区合作,探讨未来商业发展。多少欧......
  • Day5
    Day5模拟赛T1设\(dp_{i,j,k,0/1}\)表示走到第\(i,j\)个格子,前面异或和为\(k\)的方案数\(0/1\)表示前面的每个路径丢了\(/\)没丢转移方程:\(f_{i,j,k,0}=f_{i-1,j,a_{i,j}\oplusk,0}+f_{i,j-1,a_{i,j}\oplusk,0}+f_{i-1,j,k,1}+f_{i,j-1,k,1}\)......
  • 暑假集训D5 2023.7.28 补题
    首先来回顾一下\(dijkstra\)和\(SPFA\)里面\(vis\)数组的作用和区别,以及不用\(vis\)数组的影响.(今天发现之前写堆优化的\(Dijkstra\)都不加\(vis\)数组...)\(Dijkstra\)算法中,每次取出距离源点最近的一个点来更新与他相连的其他点,置\(vis\)数组为\(true\)......
  • 鸟哥Linux私房菜学习记录day4
    第九章vim程序编辑器简易执行范例替换 :n1,n2s/word1/word2/g   :1,$s/word1/word2/g(c)(确认)删除:x向后删除一个字符,X向前删除一个字符,nx向后连续删n个字符(n)dd删除(剪切)光标所在的那一行nyy复制光标所在的那n行nG:移动到第n行u恢复前一个操作ctrl+r重做上一个动作.......
  • DAY6
    指针练习声明变量:pstr是一个指向数组的指针,该数组内含20个char类型的值char(*pstr)[20];编写一个函数,返回储存在int类型中数组中的最大值,并在一个简单的程序中测试该函数#include<stdio.h>intget_max(intnumber[],intn){intmax=number[0];inti;......
  • 初学C语言day06--进程影响及类型限定符
    进程映像:程序:存储在磁盘上的可执行文件(二进制文件、脚本文件)进程:正在系统中运行的程序进程映像:进程的内存分布情况:text代码段存储二进制指令、常量,只读的,如果强行修改会产生段错误data数据段初始化过的全局变量、初始化过的静态局部变量bss静态数据段未初......
  • Day5.2 Shell编程教程 - 特殊变量表达式参数
    1.特殊变量表达式参数`$0``$n``$#``$*``$@``$?``$$``$!`2.示例脚本示例脚本-`special_variables.sh`3.执行示例脚本4.结论大树哥个人信息在Shell脚本中,特殊变量提供了对脚本执行过程和执行环境的访问。它们帮助我们在脚本中获取脚本自身的名称、获取命令行参数以及处理其......
  • (小白必看)详解yolov5训练自己的数据集 & 使用香烟数据集训练yolov5识别香烟
    创建数据集目录在YOLOv5根目录下创建mydata文件夹(名字可以自定义),目录结构如下,将之前labelImg标注好的xml文件和图片放到对应目录下mydata…images#存放图片…xml#存放图片对应的xml文件…dataSet#之后会在Main文件夹内自动生成train.txt,val.txt,test.txt和trainval.txt四个......
  • [代码随想录]Day02-数组part02
    题目:977.有序数组的平方思路:一开始的思路是从中间向两边扩:找到第一个大于等于0的位置r;判断nums[r]是否大于等于0,如果不是赋值为len(nums)表示不在范围内了。l的位置在r的左侧因此l=r-1只要l>=0或者r<len(nums)满足一个就可以继续;遍历时要保证数组不能越界说实话维护......
  • day04课程回顾
    课程回顾数据类型转换按照类型大小排序byteshortint(char)longfloatdoublebyte1字节8位 -2^7~2^7-1short2字节16位 -2^15~2^15-1int4字节 32位 -2^31~2^31-1long 8字节 64位 -2^63~2^61-1float 4字节 32位 -10......