首页 > 其他分享 >10月24日比赛

10月24日比赛

时间:2022-10-24 23:12:45浏览次数:30  
标签:24 10 比赛 int res ll while read 异或

T1

化简,推式子,然后根据性质直接枚举即可。

int main() {
    int t = read();
    while(t--) {
      	ll ans = 0;
        ll a = read(),b = read(),c = read(),d = read(); 
        for(int y = 1;y <= c*d;++ y) {
          if(b*y > c*d) break;
          ll res = c*d-b*y;
          if(res==0) continue;
    	  if((a*c*y)%res == 0) ans++;
    	}
    	cout<<ans; putchar('\n');
    }
    return 0;
}

T2

第一档分,直接 \(O(n^2)\) 枚举每一个区间然后检查这个区间是否合法即可。
第二档分,考虑异或前缀和,开桶统计这个异或和在之前出现的次数,然后累积答案即可。
正解,考虑对p和p+1异或上x,对于异或前缀来说只是修改了p位置的前缀,p+1位置又被异或回去了,那么久可以减去之前的答案,加上当前的答案即可。

#include<bits/stdc++.h>
#define ll long long
using namespace std;
int read() {
    int x = 0,f = 1; char c = getchar();
    while(c < '0'||c > '9') {if(c=='-') f=-1;c=getchar();}
    while(c>='0'&&c<='9') {x=(x<<3)+(x<<1)+(c^48);c=getchar();}
    return x*f;
}
int n,q;
ll a[110007],cnt[110007],tot,mp[110007],cur[110007];
int main() {
//    freopen("xor2.in","r",stdin);
//    freopen("xor2.out","w",stdout);
    cin>>n>>q;
    for(int i = 1;i <= n;++ i) {
        a[i] = read();
    }
    ll ans = 0;
    mp[0] = 1;
    for(int i = 1;i <= n;++ i) {
        cur[i] = (cur[i-1]^a[i]);
        ans += mp[cur[i]];
        mp[cur[i]]++;
    }
    while(q--) {
        ll p = read(),x = read();
        mp[cur[p]]--;
        ans -= mp[cur[p]];
        cur[p] ^= x;
        ans += mp[cur[p]];
        ++mp[cur[p]];
        cout<<ans;
        putchar('\n');
    }
	return 0;
}

标签:24,10,比赛,int,res,ll,while,read,异或
From: https://www.cnblogs.com/C-hen/p/16823392.html

相关文章

  • 10.23解题报告
    T1用时:\(20\)min要求统计数组\(a\)中有序三元组\((x,y,z)\)的个数,满足\(\gcd(a_x,a_y)=a_z\),直接枚举\(x\),\(y\),将\(x\)后面的加入一个map中,统计答案即可。#......
  • 【luogu ARC106E】Medals(二分)(高维前缀和)
    Medals题目链接:luoguARC106E题目大意有n个第i个人的出现规律是对于所有2aik+1~2ai(k+1)的区间,2aik+1~2aik+ai会出现,另一部分则会不见。每个时间点你可以选择一......
  • win10 通过命令打开画图工具
    win+r打开运行     2.输入 mspaint即可打开画图    ......
  • CAD文件过大,使用它。100M变2M。
    先在命令栏输入   (dictremove(namedobjdict)"ACAD_DGNLINESTYLECOMP")  包含括号一起 然后输入PU进行清理。   ......
  • 【闲话】2022.10.24
    今天考试,又炸了乐死怎么会有考试一次出两个诈骗题啊(笑今日一歌是《有顶天变》!晚上有一会自由活动时间大家都疯了,大家都疯了(笑对了,我,Kaguya和WR进行了混沌的三星......
  • day34 1005
    1005. K次取反后最大化的数组和classSolution{publicintlargestSumAfterKNegations(int[]nums,intk){Arrays.sort(nums);inti=0;......
  • 【2022.10.24】Vue基础学习(1)
    内容概要1.前端发展介绍2.Vue的快速使用3.差值语法4.指令系统之文本指令5.指令系统之事件指令6.指令系统之属性指令内容详细1前端发展介绍#HTML(5)、CSS(......
  • 10、加密数字
    题目:输入num为四位数,对其加密规则如下:每一位数分别加5,然后将其替换为该数除以10取余的结果。将该数的第一位和第四位互换,第二位与第三位互换。最后合起来作为加密后的......
  • 闲话 22.10.24
    闲话晚上在外面逛了几圈所以今天的闲话发得比较的晚感觉生活水平需要提升于是在找游戏人生的壁纸(所以有好心人投喂几张吗(今日模拟赛有交互题“不保证评测交互库和下......
  • Windows10安装Apache2.4.54并配置PHP5.6.40/PHP8.1.11
    环境Windows10Apache2.4.54PHP5.6.40/PHP8.1.11安装Apache下载Apache下载地址:https://www.apachehaus.com/cgi-bin/download.plx#MODULES24VS17下载完后解压到指......