Acwing64周赛+Leetcode306周赛

Acwing64周赛+Leetcode306周赛

ACW

link题目链接

本周的周赛好像比较简单,可能是因为为csp模拟赛找一下信息的原因,很容易就ak

前面两题我就不说了,就是简单的return a+b

给定一个长度为 n
 的整数数组 a1,a2,…,an
。

请你统计一共有多少个数组 a
 的非空连续子数组能够同时满足以下所有条件:

该连续子数组的长度为偶数。
该连续子数组的前一半元素的异或和等于其后一半元素的异或和。
例如,当给定数组为 [1,2,3,4,5]
 时,满足条件的连续子数组只有 1
 个:[2,3,4,5]
。

输入格式

第一行包含整数 n
。

第二行包含 n
 个整数 a1,a2,…,an
。

输出格式

一个整数,表示满足条件的连续子数组的数量。

数据范围

前三个测试点满足 2≤n≤10
。
所有测试点满足 2≤n≤3×105
,0≤ai<220
。

输入样例1:

5
1 2 3 4 5
输出样例1:

1
输入样例2:

6
3 2 2 3 7 6
输出样例2:

3
输入样例3:

3
42 4 2
输出样例3:

0

这题的话就是考的两个知识点: 前缀和 还有 异或运算;这里可以推导一下 利用前缀和 然后很容易就求解;

第四题的链接

#define int long long
using namespace std;
int n,a,b,x,vx,vy;
map<pair<int,int>,int> Ch;
map<int,int> cnt;
signed main(){
    cin>>n>>a>>b;
    int ans=0;
    for(int i=1;i<=n;i++){
        cin>>x>>vx>>vy;
        int c=a*vx-vy;
        ans+=cnt[c]-Ch[{vx,vy}];
        Ch[{vx,vy}]++;
        cnt[c]++;
    }
    cout<<ans*2;
}

Leetcode

请添加图片描述
第一题的话就是简单的模拟方法很多,暴力即可

请添加图片描述
第二题就是对于每个点都进行一次遍历,然后找入度最小的位置

请添加图片描述
第三题可以用的方法很多,大多数都是暴力,或者dfs
我自己的解法目前还未看到类似的,首先就是令n+1都为单调上升的数组,对于连续的d记录初始位置和结束位置,在数组中对其翻转,即可实现

请添加图片描述
第四题原题,涉及到数位dp,感兴趣的可以去leetcode了解

这里就是acwing和leetcode的所有题目的个人解法,望指正

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值