第一次写博客,记录一下cf的训练过程,以激励自己吧。在这之前消沉了很长一段时间,才发现和同龄人差距越来越大,如果努力都不努力,那谈何抱怨天赋能力呢?
A. Sasha and His Trip
简单的模拟题,思路对了即可。
我的思路是:因为越远油价越贵。所以先判断能否在一开始就把到达目的地的油加完,如果不行的话将油箱加满,之后每到一个城市加一次油。

#include<bits/stdc++.h>
using namespace std;
#define lld %I64d
#define REP(i,k,n) for(int i=k;i<n;i++)
#define REPP(i,k,n) for(int i=k;i<=n;i++)
#define mst(a,k)  memset(a,k,sizeof(a))
#define LL long long
#define N 100005
#define mod 1000000007
#define INF 2147483646int main()
{int n,v;scanf("%d %d",&n,&v);if(n-1<=v)printf("%d\n",n-1);else{int num=n-v-1;int ans=0;REPP(i,1,num){ans+=i+1;}printf("%d\n",ans+v);}
}

B. Sasha and Magnetic Machines
依旧可以暴力模拟,一开始没有左右两个数字都遍历寻找,所以t了一次。实际上左侧的数字应该是数列中最小的数字收益最大。然后遍历寻找右侧数字以及x,以找到使总和变得最小的方案。
num=min(num,(x-1)*(mi-a[i]/x));
注意到数组里面的数字均小于100,还做了一些关于质数的剪枝,但实际上不写应该也没有影响。

#include<bits/stdc++.h>
using namespace std;
#define lld %I64d
#define REP(i,k,n) for(int i=k;i<n;i++)
#define REPP(i,k,n) for(int i=k;i<=n;i++)
#define mst(a,k)  memset(a,k,sizeof(a))
#define LL long long
#define N 100005
#define mod 1000000007
#define INF 2147483646
inline int read(){int s=0;char ch=getchar();for(; ch<'0'||ch>'9'; ch=getchar());for(; ch>='0'&&ch<='9'; ch=getchar())s=s*10+ch-'0';return s;}int a[N];
int flag[105];
int zhi[25]={2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89,97};
int main()
{int n;mst(flag,0);REP(i,0,25){flag[zhi[i]]=1;}scanf("%d",&n);int mi=100,ma=0,sum=0;REP(i,0,n){scanf("%d",&a[i]);sum+=a[i];mi=min(mi,a[i]);}int x,num,ans=0;REP(i,0,n){if(flag[a[i]]==1)continue;x=0,num=0;while(1){x++;if(a[i]%x)continue;if(mi*x>=a[i]/x){num=min(num,(x-1)*(mi-a[i]/x));break;}num=min(num,(x-1)*(mi-a[i]/x));}ans=min(ans,num);}printf("%d\n",sum+ans);
}

Γ(z)=∫0∞tz−1e−tdt&ThinSpace;.\Gamma(z) = \int_0^\infty t^{z-1}e^{-t}dt\,. Γ(z)=∫0∞​tz−1e−tdt.
C. Sasha and a Bit of Relax
这题知道结论思维正确的话很快就能解决(然而我没有QAQ)
这题有一个前提结论首先应该了解:
设前缀和数组pref(i)=a1⊕a2⊕…⊕ai. 那么al⊕al+1⊕…⊕ar=pref(r)⊕pref(l-1)。正常应该是自己都能推出来的,我后来问dalao才反应过来这一点。
这道题一开始我题目读错了,以为是mid左侧所有元素异或==mid右侧所有元素异或,以错误的思路做了一个小时。
实际上的做法:设xor[x,y]表示从x到y异或和。则xor[l,mid-1]==xor[mid,r]就可以转化为xor[l,r]==0。即求所有异或和为0的偶数长度子段。继续简化一下就是求pref(l-1)==pref®。
这样我们就可以利用一个区分奇偶数的前缀和桶结构来求出所有的funny pairs。
特别要注意的点是:例如2 2的样例会判错。原因是一开始时0 也在偶数位上出现了,需加入桶中。
详见代码:

#include<bits/stdc++.h>
using namespace std;
#define lld %I64d
#define REP(i,k,n) for(int i=k;i<n;i++)
#define REPP(i,k,n) for(int i=k;i<=n;i++)
#define mst(a,k)  memset(a,k,sizeof(a))
#define LL long long
#define N 300005
#define mod 1000000007
#define INF 0x3f3f3f3f
inline int read(){int s=0;char ch=getchar();for(; ch<'0'||ch>'9'; ch=getchar());for(; ch>='0'&&ch<='9'; ch=getchar())s=s*10+ch-'0';return s;}
int a[N];
#define num (1<<20)+10
int odd[num],eve[num];//桶结构分开保存奇偶
int main()
{LL ans=0;int n=read();a[0]=0;REPP(i,1,n){a[i]=read();}eve[0]++;int pre=0;REPP(i,1,n){pre^=a[i];if(i&1){ans+=odd[pre];//加上在此之前这个前缀和出现的次数odd[pre]++;}else{ans+=eve[pre];eve[pre]++;}}printf("%lld\n",ans);
}

Codeforces Round#539(Div. 2)相关推荐

  1. Codeforces Round #539 (Div. 2) C. Sasha and a Bit of Relax

    链接:https://codeforces.com/problemset/problem/1113/C 题意:长度为n的序列 ,若l,r满足,则称这对l,r为funny,其中mid=(r-l+)/2 ...

  2. Codeforces Round #539 (Div. 1)

    有史以来打的最烂的一场...B题都WA了两发,D题数树不知道结论不会做,E题没调出来...GG了. 也说明我实力其实还不够吧...再多加练习,我还有机会继续努力. 题目链接 A. Sasha and ...

  3. Codeforces Round #539 Div. 1

    A:即求长度为偶数的异或和为0的区间个数,对前缀异或和用桶记录即可. #include<iostream> #include<cstdio> #include<cmath ...

  4. Codeforces Round #506 (Div. 3)

    Codeforces Round #506 (Div. 3) 实习期间事不多,对div3 面向题解和数据编程了一波 A. Many Equal Substrings 题目链接 A题就是找后缀和前缀重合 ...

  5. Codeforces Round #563 (Div. 2)/CF1174

    Codeforces Round #563 (Div. 2)/CF1174 CF1174A Ehab Fails to Be Thanos 其实就是要\(\sum\limits_{i=1}^n a_i ...

  6. 构造 Codeforces Round #302 (Div. 2) B Sea and Islands

    题目传送门 1 /* 2 题意:在n^n的海洋里是否有k块陆地 3 构造算法:按奇偶性来判断,k小于等于所有点数的一半,交叉输出L/S 4 输出完k个L后,之后全部输出S:) 5 5 10 的例子可以 ...

  7. Codeforces Round #696 (Div. 2) (A ~ E)超高质量题解(每日训练 Day.16 )

    整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 Codeforces Round #696 (Div. 2) (A ~ E)超高质量题解 比赛链接:h ...

  8. Codeforces Round #712 Div.2(A ~ F) 超高质量题解(每日训练 Day.15 )

    整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 Codeforces Round #712 Div.2(A ~ F) 题解 比赛链接:https:// ...

  9. Codeforces Round #701 (Div. 2) A ~ F ,6题全,超高质量良心题解【每日亿题】2021/2/13

    整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 目录 A - Add and Divide B - Replace and Keep Sorted C ...

最新文章

  1. chmod +x的意思就是给执行权限
  2. 关于上个Flex-Jsp-DB例子中Flex和Jsp传递中文参数问题的解决方法!(Tomcat服务器)...
  3. threadlocals_如何使用ThreadLocals射击自己
  4. java后端工程师平时开发或多或少会用到eclipse,那么它有哪些快捷键呢
  5. 你应该知道为什么需要内核
  6. 电脑休眠和睡眠的区别_Windows操作系统中的休眠模式和睡眠模式有什么区别?...
  7. php切割文件上传,php+ajax实现文件切割上传功能示例
  8. 花书+吴恩达深度学习(十二)卷积神经网络 CNN 之全连接层
  9. c语言未初始化的指针下标访问是0,C语言的二数组的指针访问.doc
  10. 清闲逛论坛,发个我们团队常用的开发资源整理,跟兄弟们共享
  11. 韩信点兵php,说说大脑的“同时性信息加工功能”
  12. Dos 模拟器 DosBox 下载使用
  13. mysql 求和_mysql分组求和
  14. win11系统输入法增加小鹤双排
  15. Android屏幕适配全方位解析与指导
  16. [iOS基础控件 - 6.2] LOL英雄列表 UITableView单项显示
  17. openwrt配置文件选项 /etc/config/wireless
  18. java代码转换程序_怎么把java代码转换成程序
  19. matlab如何实数域因式分解,x^n+1在实数域和复数域上如何因式分解
  20. 有个奇葩同事也是一件糟心的事

热门文章

  1. 【框架学习】spring简介
  2. 利用 telnet 命令测试 SMTP 服务(QQ邮箱)
  3. 基于树莓派的舵机控制原理
  4. c语言codesys编程,CODESYS2.3部分功能块源代码算法移植C源代码共享希...
  5. MySQL | 普通索引和唯一索引,应该怎么选择?
  6. GB/T 8323.2塑料 烟生成 第2 部分:单室法测定烟密度试验方
  7. Markdown编辑器花体字母问题
  8. java 微信小程序-发送模板消息
  9. Java项目:(小程序)幼儿园报名系统(java+weixin-java-mp+spring+spring mvc+mybatis+layui+微信小程序)
  10. C语言求最大公约数常见思路