Codeforces Round#470

开发者福利!热门AI工具限时免费用 购周边即赠Coding Plan Lite,Claude Code、Cursor等20+工具畅享,效率翻倍! 阅读详情

CF948A Protect Sheep(模拟)

没看到输出“Yes”卡了二十分钟【再见】

#include <cstdio>
#include <cstring>
#include <algorithm>
#include <queue>
using namespace std;
#define ll long long
#define inf 0x3f3f3f3f
#define mod 1000000007
#define N 600
inline int read(){
    int x=0,f=1;char ch=getchar();
    while(ch<'0'||ch>'9'){if(ch=='-')f=-1;ch=getchar();}
    while(ch>='0'&&ch<='9') x=x*10+ch-'0',ch=getchar();
    return x*f;
}
int n,m;
char mp[N][N];
int main(){
//  freopen("a.in","r",stdin);
    n=read();m=read();
    for(int i=1;i<=n;++i)
        scanf("%s",mp[i]+1);
    for(int i=1;i<=n;++i)
        for(int j=1;j<m;++j)
            if((mp[i][j]=='S'&&mp[i][j+1]=='W')||(mp[i][j]=='W'&&mp[i][j+1]=='S')){puts("No");return 0;}
    for(int j=1;j<=m;++j)
        for(int i=1;i<n;++i)
            if((mp[i][j]=='S'&&mp[i+1][j]=='W')||(mp[i][j]=='W'&&mp[i+1][j]=='S')){puts("No");return 0;}
    puts("Yes");
    for(int i=1;i<=n;++i){
        for(int j=1;j<=m;++j) if(mp[i][j]=='.') mp[i][j]='D';
        puts(mp[i]+1);
    }return 0;
}

CF923A Primal Sport(线性素数筛,数学)

再一次卡了半天【再见】
我们可以先O(n)处理出P(n),表示n的最大质因数。
然后我们发现xi的取值范围为xi+1>=xi>xi+1P(xi+1)。于是我们可以枚举x1,然后O(1)得到最小的x0.
在讨论中看到,其实可以做到O(n)+O(logn)
令Q(n)=n/P(n).则x0=x1P(x1)+1=x1(11/Q(x1)+1
从小到大枚举x1的话,显然当Q(x1)=2时再大的x1就不会使得x0的值就更小了。而Q(n)=2,说明n=2*P(n),而质数分布大概是log的,所以我们最多枚举log个x1就可以了。

#include <cstdio>
#include <cstring>
#include <algorithm>
#include <queue>
using namespace std;
#define ll long long
#define inf 0x3f3f3f3f
#define mod 1000000007
#define N 1000010
inline int read(){
    int x=0,f=1;char ch=getchar();
    while(ch<'0'||ch>'9'){if(ch=='-')f=-1;ch=getchar();}
    while(ch>='0'&&ch<='9') x=x*10+ch-'0',ch=getchar();
    return x*f;
}
int n,ans=inf,tot=0,prime[N],a[N];
bool notprime[N];
void getprime(){
    notprime[1]=1;
    for(int i=2;i<=1000000;++i){
        if(!notprime[i]) prime[++tot]=i,a[i]=i;
        for(int j=1;prime[j]*i<=1000000;++j){
            notprime[prime[j]*i]=1;a[prime[j]*i]=a[i];
            if(i%prime[j]==0) break;
        }
    }
}
int main(){
//  freopen("a.in","r",stdin);
    int n=read(),x=n,mx=0;getprime();
    for(int i=2;i*i<=n;++i){
        if(x%i) continue;
        while(x%i==0) x/=i;
        mx=i;
    }if(x!=1) mx=x;
    for(int i=n-mx+1;i<=n;++i){
        if(!notprime[i]) continue;
        ans=min(ans,i-a[i]+1);
    }printf("%d\n",ans);
    return 0;
}

CF923B Producing Snow(树状数组+二分/平衡树)

大概就是给t数组做个前缀和,然后二分一下这堆雪在那一天化没,记录对答案的贡献。Visjiao巨佬用splay直接踩了过去。

#include <cstdio>
#include <cstring>
#include <algorithm>
#include <queue>
using namespace std;
#define ll long long
#define inf 0x3f3f3f3f
#define N 100010
inline char gc(){
    static char buf[1<<16],*S,*T;
    if(S==T){T=(S=buf)+fread(buf,1,1<<16,stdin);if(S==T) return EOF;}
    return *S++;
}
inline int read(){
    int x=0,f=1;char ch=gc();
    while(ch<'0'||ch>'9'){if(ch=='-')f=-1;ch=gc();}
    while(ch>='0'&&ch<='9') x=x*10+ch-'0',ch=gc();
    return x*f;
}
int n,a[N],t[N],c[N];
ll sum[N],ans[N];
inline void add(int x,int val){
    for(;x<=n;x+=x&-x) c[x]+=val;
}
inline int ask(int x){
    int res=0;for(;x;x-=x&-x) res+=c[x];return res;
}
int main(){
//  freopen("a.in","r",stdin);
    n=read();
    for(int i=1;i<=n;++i) a[i]=read();
    for(int i=1;i<=n;++i) t[i]=read(),sum[i]=sum[i-1]+t[i];
    for(int i=1;i<=n;++i){
        ll x=a[i]+sum[i-1];
        int cnt=upper_bound(sum+1,sum+n+1,x)-sum;//i~cnt-1
        if(i!=cnt) add(i,1),add(cnt,-1);
        ans[cnt]+=x-sum[cnt-1];
    }for(int i=1;i<=n;++i) printf("%I64d ",ans[i]+(ll)ask(i)*t[i]);
    return 0;
}

CF923C Perfect Security(贪心+Trie)

复杂度O(nlogw)

#include <cstdio>
#include <cstring>
#include <algorithm>
#include <queue>
using namespace std;
#define ll long long
#define inf 0x3f3f3f3f
#define N 300010
inline char gc(){
    static char buf[1<<16],*S,*T;
    if(S==T){T=(S=buf)+fread(buf,1,1<<16,stdin);if(S==T) return EOF;}
    return *S++;
}
inline int read(){
    int x=0,f=1;char ch=gc();
    while(ch<'0'||ch>'9'){if(ch=='-')f=-1;ch=gc();}
    while(ch>='0'&&ch<='9') x=x*10+ch-'0',ch=gc();
    return x*f;
}
int n,a[N],son[N*30][2],cnt[N*30],bin[32],rt=1,tot=1,ans;
inline void ins(int x){
    int p=rt;cnt[rt]++;
    for(int i=29;i>=0;--i){
        int op=x>>i&1;
        if(!son[p][op]) son[p][op]=++tot;p=son[p][op];
        cnt[p]++; 
    }
}
inline void ask(int x){
    int p=rt;
    for(int i=29;i>=0;--i){
        int op=x>>i&1;
        if(!son[p][op]||!cnt[son[p][op]]) ans|=bin[i],p=son[p][op^1];
        else p=son[p][op];cnt[p]--;
    }
}
int main(){
//  freopen("a.in","r",stdin);
    n=read();bin[0]=1;
    for(int i=1;i<=n;++i) a[i]=read();
    for(int i=1;i<=30;++i) bin[i]=bin[i-1]<<1;
    for(int i=1;i<=n;++i){
        int x=read();ins(x);
    }for(int i=1;i<=n;++i){
        ans=0;ask(a[i]);printf("%d ",ans);
    }return 0;
}

CF923D Picking Strings(手玩题)

通过手玩发现B和C可以互换,于是把C都换成B。然后我们的操作就是
A->BB
AB->B
B->AB
AAA->empty string
于是一个B的前面我们可以加减若干A,于是我们只需考虑B的个数以及末尾A的个数。
分三类:
1、末尾A个数相等,B1>B2且差为偶数则ok
2、原串有B,A1>A2,则(A1-A2)%3若还剩,就需要换出一个BB,然后转1
3、原串无B,则A1必须大于A2,并换出一个BB。
赛后A题gg(赛后也fst呢【逃】)

#include <cstdio>
#include <cstring>
#include <algorithm>
#include <queue>
using namespace std;
#define ll long long
#define inf 0x3f3f3f3f
#define N 100010
inline int read(){
    int x=0,f=1;char ch=getchar();
    while(ch<'0'||ch>'9'){if(ch=='-')f=-1;ch=getchar();}
    while(ch>='0'&&ch<='9') x=x*10+ch-'0',ch=getchar();
    return x*f;
}
int n,m,sum1[N],sum2[N],Q,la1[N],la2[N];
char s1[N],s2[N],ans[N];
int main(){
//  freopen("a.in","r",stdin);
    scanf("%s",s1+1);scanf("%s",s2+1);
    n=strlen(s1+1);m=strlen(s2+1);Q=read();
    for(int i=1;i<=n;++i){
        sum1[i]=sum1[i-1]+(s1[i]!='A');
        if(s1[i]=='A') la1[i]=la1[i-1]+1;else la1[i]=0;
    }
    for(int i=1;i<=m;++i){
        sum2[i]=sum2[i-1]+(s2[i]!='A');
        if(s2[i]=='A') la2[i]=la2[i-1]+1;else la2[i]=0;
    }
    for(int i=1;i<=Q;++i){
        int l1=read(),r1=read(),l2=read(),r2=read();
        int cnt1=sum1[r1]-sum1[l1-1],cnt2=sum2[r2]-sum2[l2-1];
        int num1=min(la1[r1],r1-l1+1),num2=min(la2[r2],r2-l2+1);
        if(num1<num2){ans[i]='0';continue;}
        if(!cnt1&&cnt2){
            if(num1==num2){ans[i]='0';continue;}
            cnt1+=2;
        }
        else if((num1-num2)%3) cnt1+=2;
        if(cnt1>cnt2||(cnt2-cnt1)&1) {ans[i]='0';continue;}
        ans[i]='1';
    }puts(ans+1);
    return 0;
}

总结:反向做题简直日神仙。

2025华东杯A/B/C题解题思路+可运行代码参考 这些因素包括但不限于:助滑坡的坡度、运动员的质量、滑雪板的接触面与雪地的摩擦力、空气阻力系数、运动员的体型和衣物形态等。助滑坡是运动员滑行至起跳台前的最后一段坡道,这一段坡道的坡度、长度和运动员的姿势会直接影响到起跳时的初始速度。运动员的滑行速度不仅受助滑坡的坡度影响,还受到摩擦力、空气阻力和重力等多方面因素的影响。通过合理的姿势调整,运动员能够有效减少空气阻力,增加身体的重力加速度,进而提升滑行速度。助滑坡的角度通常介于10°到12°之间,而运动员的滑行速度将受到重力、摩擦力和空气阻力的共同作用。 阅读详情

相关推荐

速腾RS-LiDAR-16激光雷达ROS环境搭建与点云可视化实战指南

本文提供速腾RS-LiDAR-16激光雷达在ROS环境下的完整搭建与可视化实战指南。从硬件连接、网络配置、驱动安装编译,到核心参数详解与Rviz点云可视化,手把手解决IP设置、坐标系对齐等常见问题,帮助开发者快速实现激光雷达三维点云数据的采集与显示。

weixin_29271263的博客 347

【题解】CF923A:Primal Sport

原题传送门 首先发现一个结论:Xi的值域为[Xi+1−P+1,Xi+1],P为Xi+1的最大质因数X_i的值域为[X_{i+1}-P+1,X_{i+1}],P为X_{i+1}的最大质因数Xi​的值域为[Xi+1​−P+1,Xi+1​],P为Xi+1​的最大质因数 预处理每个数是否为质数以及最大质因数,用线筛可完成 然后枚举X1X_1X1​,求针对每个X1X_1X1​的X0X_0X0​的最小值 Co...

ModestCoder_的博客 514

多模态数据集对比:MicroLens、PixelRec和Amazon在电商推荐中的表现差异

本文深入对比了三大主流多模态数据集MicroLens、PixelRec和Amazon在电商推荐中的表现差异。通过实际测试数据,分析了这些数据集在冷启动处理、模态融合、稀疏性挑战等关键场景下的真实表现,为算法工程师和研究员提供实用指南。特别关注多模态数据集的选择对推荐系统效果的影响,帮助开发者优化模型性能。

weixin_28717939的博客 382

C. Perfect Security(01字典树+贪心)

肯定是对每个ai快速求出最好的bj肯定是对每个a_i快速求出最好的b_j肯定是对每个ai​快速求出最好的bj​ 字典树可以很好的完成字典树可以很好的完成字典树可以很好的完成 从高位到低位插入二进制bj从高位到低位插入二进制b_j从高位到低位插入二进制bj​ 那么对于ai来说,每一位都尽量选和自己相同的就好了那么对于a_i来说,每一位都尽量选和自己相同的就好了那么对于ai​来说,每一位都尽量选和自己相同的就好了 #include <bits/stdc++.h> using namespace st

jziwjxjd的博客 528

CodeForces】947 C. Perfect Security 异或Trie

【题目】C. Perfect Security 【题意】给定长度为n的非负整数数组A和数组B,要求将数组B重排列使得A[i]^B[i]的字典序最小。n<=3*10^5,time=3.5s。 【算法】异或Trie 【题解】对一个数组O(n log n)建立异或Trie,就能O(log n)判断任意一个数在这个数组中异或值最大的数。 所以对B建异或Trie(每个数字从高二进制位开始插入)...

weixin_34293902的博客 170

Codeforces Round #470 div2 C

C. Producing Snowtime limit per test1 secondmemory limit per test256 megabytesinputstandard inputoutputstandard outputAlice likes snow a lot! Unfortunately, this year's winter is already over, and she...

ACM_e的博客 814

Codeforces 923A - Primal Sport

传送门:Primal SportA. Primal Sporttime limit per test1.5 secondsmemory limit per test256 megabytesinputstandard inputoutputstandard outputAlice and Bob begin their day with a quick game. They first choos...

勇敢前进的ACMer 1371

Codeforces Round #470-D-Perfect Security(01字典树)

题意:给你两个数组,对于每个ai,在b数组中找到一个元素与其异或,得到的值为ci,同时删除bi,然后让你输出组成字典序最小c数组 题解:裸的01字典树,对于每个ai,找能和ai异或出最小值的bi即可,暴力超时,所以可将每个bi插入字典树中,因为每次找到一个bi后要删除bi,但是对于删除操作我觉得过于繁琐,因此我是标记每个节点出现的次数,这样就能无脑不重复的找到当前最佳的bi(ps:比赛时死于su

信仰.的博客 950

CodeForces 923C Perfect Security

C. Perfect Security time limit per test3.5 seconds memory limit per test512 megabytes inputstandard input outputstandard output Alice has a very important message M consisting of some non-negativ...

Bryce1010's Blog 781

Codeforces-948D:Perfect Security(Trie树)

D. Perfect Securitytime limit per test3.5 secondsmemory limit per test512 megabytesinputstandard inputoutputstandard outputAlice has a very important message M consisting of some non-negative integers...

Mitsuha_的博客 757

Codeforces 923A Primal Sport(贪心 欧拉筛)

题目链接:Primal Sport 题意 AliceAliceAlice 和 BobBobBob 两人在玩一个游戏,AliceAliceAlice 先开始,两人轮流进行,第 iii 次游戏中,对于一个整数 XiXiX_i,选择一个素数 p&lt;Xip&lt;XipYYY,使得 Y≥XY≥XY\geq X 且 YYY 能被 ppp 整除,将这个数字作为下一次游戏的新值 Xi+1Xi+1X...

Dmaxiya 427

Codeforces 923A Primal Sport

A. Primal Sporttime limit per test1.5 secondsmemory limit per test256 megabytesinputstandard inputoutputstandard outputAlice and Bob begin their day with a quick game. They first choose a starting num...

Kizuna_AI的博客 797

codeforces D. Perfect Security

http://codeforces.com/contest/948/problem/D题意:给出两个序列a,b,找出b的某一种置换,求出字典序最小的序列c,满足ci=ai^bi。对于每一个ai,我们只要找出序列b中可用元素中异或结果最小的那一个,就可以保证字典序最小了。对b中的每一个建立出01字典树,再将ai代入查询即可。#include&lt;stdio.h&gt; #include&lt;st...

~不可描述~ 443

Codeforces Round #470 (前缀和+二分查找+树状数组)

C. Producing Snowtime limit per test1 secondmemory limit per test256 megabytesinputstandard inputoutputstandard outputAlice likes snow a lot! Unfortunately, this year's winter is already over, and she...

sher杨的博客 275

Codeforces 948D Perfect Security

01字典树#include&lt;bits/stdc++.h&gt; using namespace std; const int maxn=3e5+10; #define ll long long ll a[maxn],b[maxn],sn,ans[maxn],siz,cnt[maxn*40][2]; ll sum[maxn*40]; inline void insert(ll x) { ...

m0_37389559的博客 439

VK Cup 2018 - Round 1 A. Primal Sport

A. Primal Sport time limit per test 1.5 seconds memory limit per test 256 megabytes input standard input output standard output Alice and Bob begin their day with a quic

Bryce1010's Blog 1065

Codeforces Round #470-C-Producing Snow(二分)

题意:给你n堆雪,每堆有ai单位,第i堆从第i天开始融化,并从此往后每天能融化bi单位(当然,若总量在改天小于bi,呢就是融化剩下的单位量),然后问你每天融化的雪的总量。 题解:对于每天最多能融化的雪量求一波前缀和,然后对于每一堆雪量二分查找在那天能融化完,然后用类似区间覆盖的思想标记每天会融化多少倍的bi即可,还有就是若之前某一堆的雪量小于bi,则直接加到该天的答案里即可。 #include

信仰.的博客 533

Codeforces Round #470 div2 C(优先队列+前缀和)

C. Producing Snowtime limit per test1 secondmemory limit per test256 megabytesinputstandard inputoutputstandard outputAlice likes snow a lot! Unfortunately, this year's winter is already over, and she...

阿狸的博客 874

VK Cup 2018 Round 1: C. Perfect Security(01字典树)

C. Perfect Securitytime limit per test 3.5 secondsmemory limit per test 512 megabytesinput standard inputoutput standard outputAlice has a very important message M consisting of some non-negative inte...

加载中... 578

Codeforces Round #467 (Div. 2) B. Vile Grasshoppers

B. Vile GrasshoppersThe weather is fine today and hence it's high time to climb the nearby pine and enjoy the landscape.The pine's trunk includes several branches, located one above another and number...

s540239976的博客 512

Codeforces Round #470 (rated, Div. 2,(数字,质因子)

B. Primal Sport time limit per test 1.5 seconds memory limit per test 256 megabytes input standard input output standard output Alice and Bob begin their day with a quick game. They first cho...

城南的花 322

CodeForce 923A PromalSport

B. Primal Sporttime limit per test1.5 secondsmemory limit per test256 megabytesinputstandard inputoutputstandard outputAlice and Bob begin their day with a quick game. They first choose a starting num...

DlPF_C的博客 436
上一篇: CF225E Unsolvable(数论)
下一篇: CF201A Clear Symmetry(构造题)
Icefox_zhx
博客等级 码龄10年 81粉丝 1239原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值