首页 > 其他分享 >2024 蓝桥杯省赛游记

2024 蓝桥杯省赛游记

时间:2024-05-27 20:55:13浏览次数:13  
标签:__ 2024 return int auto 蓝桥 using 省赛

Day -inf

看了眼去年的题,一个插头 dp 一个杜教筛,恐怖如斯

群里问了句发现 hkh mtr 也参加

Day1

完全没压力所以随便玩了。开场扫了一眼只有 8 道题,有个树上莫队?

T1 赛后看知乎好像能直接拿 excel 生成字符串形式的日期
T2 一开始没注意白棋一定有 13 个子,跑完了再看题才想到,提答的大忌都忘了
T3 枚举了组团训练的次数,然后 \(O(1)\) 算答案。赛后看知乎没有必要,做法还是挺多的
T4 不就是两个自动机上同步 bfs/dfs,这还能拿来当一道题(
T5 方差我可太熟了。不知道为什么以为二分复杂度不对。T6 计数没一眼秒所以先跳了。
T7 颜色种类 \(\le20\),直接倍增就完了,很久没写还专门测了一下 lca 处
T8 出乎意料地简单,随便线段树维护一下贪心
回头看 T5 复杂度很对啊,写完可能还剩 2h

最后做 T6。一开始想手动容斥成二元组,但想不清楚容斥,最后的做法在下面。写了个拍,调了 1h

最后读题看代码发现倍增的 lca 处写的一坨,不知道前面测了个啥,紧急修了一下

等公交的时候被晒傻了,应该骑个电单车回去

Day inf

终于出成绩了,没有翻车

不知道这些比赛为什么这么能拖,含金量和出分速度成正比是吧


LG10390 [蓝桥杯 2024 省 A] 因数计数

我的数数水平真是低到令人发指

从值而不是位置出发数四元组。\(O(n\ln n)\) 枚举一个二元组,讨论有值相同的情况

恰好爆 uLL,需要 __int128

#include <bits/stdc++.h>
#include <bits/extc++.h>
using namespace std; using namespace __gnu_pbds; using namespace __gnu_cxx;
#define For(i,x,y,...) for(int i=x,##__VA_ARGS__;i<=(y);++i)
#define rFor(i,x,y,...) for(int i=x,##__VA_ARGS__;i>=(y);--i)
#define Rep(i,x,y,...) for(int i=x,##__VA_ARGS__;i<(y);++i)
#define pb emplace_back
#define sz(a) int((a).size())
#define all(a) begin(a),end(a)
#define fi first
#define se second
typedef long long LL; typedef vector<int> Vi; typedef pair<int,int> Pii;
auto ckmax=[](auto &x,auto y) { return x<y ? x=y,true : false; };
auto ckmin=[](auto &x,auto y) { return y<x ? x=y,true : false; };
sfmt19937 mt(chrono::steady_clock::now().time_since_epoch().count());
int rnd(int l,int r) { return uniform_int_distribution<>(l,r)(mt); }
template<typename T=int>T read() { T x; cin>>x; return x; }

const int mod = 998244353;
struct mint {
    int x; mint(int x=0):x(x<0?x+mod:x<mod?x:x-mod){}
    mint(LL y) { y%=mod, x=y<0?y+mod:y; }
    mint& operator += (const mint &y) { x=x+y.x<mod?x+y.x:x+y.x-mod; return *this; }
    mint& operator -= (const mint &y) { x=x<y.x?x-y.x+mod:x-y.x; return *this; }
    mint& operator *= (const mint &y) { x=1ll*x*y.x%mod; return *this; }
    friend mint operator + (mint x,const mint &y) { return x+=y; }
    friend mint operator - (mint x,const mint &y) { return x-=y; }
    friend mint operator * (mint x,const mint &y) { return x*=y; }
};	mint Pow(mint x,LL y=mod-2) { mint z(1);for(;y;y>>=1,x*=x)if(y&1)z*=x;return z; }

typedef __int128 lint;
ostream& operator << (ostream& io,lint x) {
    if(!x)io<<'0';
    else{static char s[40];int l=0;
        for(;x;x/=10)s[l++]=x%10+'0';while(l)io<<s[--l];}
    return io;
}

const int N = 1e5+5, X = 1e5;
int n;
lint tot1,tot2,ans,a[N],f[N],g[N];

lint A(lint x) { return x * (x-1); }

signed main() {
#ifdef FT
    freopen("in","r",stdin); freopen("out","w",stdout);
#endif
    ios::sync_with_stdio(0);cin.tie(0);
    // n = 1e5; For(i,1,n) ++a[1];
    cin>>n; For(i,1,n) ++a[read()];
    For(i,1,X) for(int j = i+i; j <= X; j += i) f[i] += a[j], g[j] += a[i];
    For(i,1,X) tot1 += a[i] * f[i], tot2 += A(a[i]);
    For(i,1,X) if( a[i] ) {
        ans += A(a[i]) * A(a[i]-2 + f[i]); // (i,i,*,*)
        ans += A(a[i]) * (tot1-a[i]*f[i]-2*g[i] + tot2-A(a[i])); // (i,*!=i,i,*)
        ans += A(a[i]) * f[i] * g[i]; // (i,*!=i,*!=i,i)
        for(int j = i+i; j <= X; j += i) if( a[j] ) // (i,*!=i,j,*!=i)
            ans += a[i] * a[j] * (tot1 - a[i]*(f[i]+g[i]) - (f[j]+g[j]) + a[i]
                                + tot2 - A(a[i]) - A(a[j]) + A(a[j]-1));
        // cerr<<i<<": "<<ans<<'\n';
    }
    cout<<ans;
    return 0;
}

标签:__,2024,return,int,auto,蓝桥,using,省赛
From: https://www.cnblogs.com/ft61/p/18198600

相关文章

  • 2024年中国金融行业网络安全案例集
    随着科技的飞速发展,金融行业与信息技术的融合日益加深,网络安全已成为金融行业发展的生命线。金融行业作为国家经济的核心支柱,正在面临着日益复杂严峻的网络安全挑战。因此,深入研究和探讨金融行业的网络安全问题,不仅关乎金融行业的稳健运行,更关系到国家经济的安全和社会的稳......
  • 2024-05-23_结构体概念等作业
    1.如有以下代码:structstudent{intnum;charname[32];floatscore;}stu;则下面的叙述不正确的是:()A.struct是结构体类型的关键字B.structstudent是用户定义的结构体类型C.num,score都是结构体成员名D.stu是用户定义的结构体类型名解析:A:正确,在C......
  • 2024最全java面试题整理(持续更新)
    1.springboot项目和maven项目的区别?(1)打包方式:传统项目如果需要打成war包,需要在WEB-INF目录结构配置web.xml文件;springboot则不需要(2)项目启动方式:传统web项目启动方式:在eclipse和tomcat插件中导入项目,然后启动tomcat,项目也启动了。或者将项目打成war包,放入tomcat中,启动tomca......
  • android studio2024最新详解(完全小白)安装-运行第一个程序
    前面我用2023最新版本的,死活就卡在引入依赖那里卡了两天,俺的崩溃谁知啊!! 后面我就换了个思维,看着网上大多的教程都是基于2022或者2020的,我就找了个看起来非常详细的视频,里面的是2020的,所以我就下载了2020。  有点小伙伴可能会找不到androidstudio的过往版本,这里我就直......
  • 郑州2024-ccpc-赛后总结-wh
    今年真的很可惜,就差1个罚时拿全国邀请银,省赛金。比较惋惜刚开始第一发,找到签到题太快了,忘写输入了直接wa1发,随后Fac,其次开始写J,J是我的问题,刚开始想5位全排列结果T了,然后发现性质结果一直卡endl,WA了4发(导致没拿邀请银,真的很可惜),随后Jac,然后wmh4分钟切出来了M,然后一起写B,我刚开始......
  • 【会议征稿,SPIE独立出版】第五届计算机视觉和数据挖掘国际学术会议(ICCVDM 2024)
    第五届计算机视觉与数据挖掘国际学术会议(ICCVDM2024)将于2024年7月19-21日在中国长春举行。此前,ICCVDM系列会议于2020年在中国西安、2021年在中国长沙(线上)、2022年在中国呼伦贝尔(线上+线下)、2023年在中国长春(线上+线下)皆已成功举办。ICCVDM为世界各地该领域的专家、学者、......
  • 赶紧收藏!2024 年最常见 20道 Redis面试题(九)
    上一篇地址:赶紧收藏!2024年最常见20道Redis面试题(八)-CSDN博客十七、如何使用Redis做异步队列?使用Redis作为异步队列主要依赖于Redis的列表(list)数据结构,列表提供了原子的推入(push)和弹出(pop)操作,这使得它非常适合实现队列。以下是使用Redis实现异步队列的步骤:准备Red......
  • CVPR 2024 | 谷歌提出OmniGlue:特征匹配新工作
    前言 第一个以「泛化」能力为核心设计原则的可学习图像匹配器来了!欢迎关注公众号CV技术指南,专注于计算机视觉的技术总结、最新技术跟踪、经典论文解读、CV招聘信息。本文转载自机器之心仅用于学术分享,若侵权请联系删除CV方向的准研究生们,未来三年如何度过?招聘高光谱图像、语......
  • 京麒CTF2024-Ezjvav
    admin/admin弱密码登录,扫网页发现/js/manage.js,访问得到js混淆代码,直接gpt梭:window.onload=function(){  fetch('/source')    .then(response=>response.json())    .then(data=>{      console.log(data);    })  ......
  • 推推宝藏会议-RAIIC 2024
    【IEEE出版|往届3个月完成检索】第三届机器人、人工智能与智能控制国际会议(RAIIC2024)The3rd InternationalConferenceonRobotics,ArtificialIntelligenceandIntelligentControl 重要信息会议时间:2024年7月5-7日会议地点:中国·绵阳二轮截稿时间:2024年6月......