首页 > 其他分享 >2023-12-8

2023-12-8

时间:2023-12-09 20:12:51浏览次数:29  
标签:cnt 12 int long -- solve 2023 define

2023-12-8

在vp div2的时候遇见了一道题

Problem - D - Codeforces

找不到看得懂的题解,但是大体应该是用的数论知识。正好趁这个机会补补数论的东西。

学习文章

算法学习笔记27:素数筛法【埃氏筛法、线性筛法】 - 知乎 (zhihu.com)

#include <bits/stdc++.h>
#define endl '\n'
using namespace std;

constexpr int N = 3e5 + 10, md = 1e9 + 7;
const int M = (int)(1.5e7 + 2);
int a[N], cnt[M];
int prime[M / 10];
bool vis[M];
int n;

void pr(int tt){
    vis[1]=true;
    for(int i=2;i<=tt;i++){
        if(!vis[i]) prime[++prime[0]]=i;
        for(int j=1;i*prime[j]<tt;j++)
        {
            vis[i*prime[j]]=true;
            if(i%prime[j]==0) break;
        }
    }
}

void solve(){
    cin>>n;
    int d=0;
    for(int i=1;i<=n;i++){
        cin>>a[i];
        d=__gcd(d,a[i]);
    }
    int cx=0;
    for(int i=1;i<=n;i++)
    {
        a[i]/=d;
        cx=max(cx,a[i]);
        cnt[a[i]]++;
    }
    pr(cx);

    int ans=0;
    for(int i=1;i<=prime[0];i++)
    {
        int ct=0;
        for(int j=prime[i];j<=cx;j+=prime[i])
            ct+=cnt[j];
        if(ct>0)ans=max(ans,ct);
    }
    cout<< (ans==0 ? -1 : n-ans) <<endl;
}

signed main(){
    ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);
    int T=1;
    //cin>>T;
    while(T--) solve();
    return 0;
}

Problem - D - Codeforces

这题我以前还写过,,,

#include <bits/stdc++.h>
#define endl '\n'
using namespace std;

const int mod = 998244353;
const int N   = 1e5 + 10;
int a[N];
int f[N];
int n;

void solve(){
    cin>>n;
    for(int i=1;i<=n;i++) cin>>a[i];
    for(int i=1;i<=n;i++)
        for(int j=i;j<=n;j+=i)
            f[i] = max(f[i],a[j]);
    sort(f+1,f+1+n);
    long long ans = 0;
    long long x   = 1;
    for(int i=1;i<=n;i++){
        ans = (ans + (x*f[i]%mod)%mod)%mod;
        x   =  x*2%mod;
    }
    cout<<ans<<endl;
}

signed main(){
    ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);
    int T=1;
    //cin>>T;
    while(T--) solve();
    return 0;
}

803F - Coprime Subsequences

#include <bits/stdc++.h>
#define endl '\n'
#define int long long
using namespace std;

const int mod = 1e9 + 7;
const int N   = 1e5 + 10;
long long a[N],ans[N],cnt[N];
long long pow1[N];
int n;

void solve(){
    cin>>n;
    pow1[0]=1;
    int cx=0;
    for(int i=1;i<=n;i++)
    {
        cin>>a[i];
        cnt[a[i]]++;
        pow1[i] = (pow1[i-1] << 1) % mod;
        cx = max(cx,a[i]);
    }
    for(int i=1;i<=cx;i++)
        for(int j=i*2;j<=cx;j+=i)
            cnt[i] += cnt[j];
    for(int i=cx;i>0;i--)
    {
        ans[i]=pow1[cnt[i]]-1;
        for(int j=2*i;j<=cx&&j<N;j+=i)
        {
            ans[i] -= ans[j];
            if(ans[i]<0) ans[i] += mod;  //因为前面取过模,所以这里要注意
        }
    }
    cout<<ans[1]<<endl;
}

signed main(){
    ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);
    int T=1;
    //cin>>T;
    while(T--) solve();
    return 0;
}

C. Jzzhu and Apples

Problem - 449C - Codeforces

我是书背,写了半天是线性筛写错了,,

#include <bits/stdc++.h>
#define endl '\n'
#define int long long
using namespace std;

const int N = 1e5 + 10;
int n;
int prime[N];
bool vis[N];
void pr(){
    vis[1]=true;
    for(int i=2;i<N;i++){
        if(!vis[i]) prime[++prime[0]]=i;
        for(int j=1;j<=prime[0]&&prime[j]*i<N;j++){
            vis[i*prime[j]]=true;
            if(i%prime[j]==0) break;
        }
    }
}

void solve(){
    cin>>n;
    pr();
    vector<pair<int,int>> ans;
    memset(vis,false,sizeof vis);
    for(int i=prime[0];i>0;i--){
        vector<int> a;
        for(int j=prime[i];j<=n;j+=prime[i])
            if(!vis[j]) a.push_back(j);
        int len=a.size();
        if(len<=1) continue;
        if(len&1){
            ans.push_back({a[0],a[len-1]});
            vis[a[0]]=vis[a[len-1]]=true;
            for(int j=2;j<len-1;j+=2){
                ans.push_back({a[j],a[j+1]});
                vis[a[j]]=vis[a[j+1]]=true;
            }
        }else{
            for(int j=0;j<len;j+=2){
                ans.push_back({a[j],a[j+1]});
                vis[a[j]]=vis[a[j+1]]=true;
            }
        }
    }
    cout<<ans.size()<<endl;
    for(auto [x,y]:ans) cout<<x<<" "<<y<<endl;
}

signed main(){
    ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);
    int T=1;
    //cin>>T;
    while(T--) solve();
    return 0;
}

D. Counting Rhyme

Problem - D - Codeforces

#include <bits/stdc++.h>
#define endl '\n'
#define int long long
using namespace std;

const int N = 1e6 + 10;
int a[N] , cnt[N];
int f[N]; //fi:gcd恰好为i的对数
bool vis[N];
int n;

void solve(){
    cin>>n;
    for(int i=0;i<=n;i++){
        vis[i]=false;
        f[i]=0;
        cnt[i]=0;
        a[i]=0;
    }
    int cx=0;
    for(int i=1;i<=n;i++){
        cin>>a[i];
        cnt[a[i]]++;
        cx = max(cx , a[i]);
    }
    for(int i=1;i<=cx;i++)
        for(int j=2*i;j<=cx;j+=i)
            cnt[i] += cnt[j];
    for(int i=cx;i>0;i--){
        f[i] = cnt[i]*(cnt[i]-1)/2;
        for(int j=2*i;j<=cx;j+=i)
            f[i] -= f[j];
    }
    for(int i=1;i<=cx;i++)
        for(int j=a[i];j<=cx;j+=a[i]) vis[j]=true;
    long long ans=0;
    for(int i=1;i<=cx;i++)
        if(!vis[i]) ans+=f[i];
    cout<<ans<<endl;
}

signed main(){
    ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);
    int T=1;
    cin>>T;
    while(T--) solve();
    return 0;
}

标签:cnt,12,int,long,--,solve,2023,define
From: https://www.cnblogs.com/zfxyyy/p/17891396.html

相关文章

  • 2023-2024-1 20231410刘珈岐《计算机基础与程序设计》第11周学习总结
    2023-2024-120231410刘珈岐《计算机基础与程序设计》第11周学习总结作业信息这个作业属于哪个课程(https://edu.cnblogs.com/campus/besti/2023-2024-1-CFAP)这个作业要求在哪里(https://www.cnblogs.com/rocedu/p/9577842.html#WEEK11)这个作业的目标自学教材《......
  • 学期2023-2024-1 20231401 《计算机基础与程序设计》第十一周学习总结
    学期2023-2024-120231401《计算机基础与程序设计》第十一周学习总结作业信息这个作业属于哪个课程2023-2024-1-计算机基础与程序设计)这个作业要求在哪里2023-2024-1计算机基础与程序设计第十一周作业这个作业的目标自学计算机科学概论第15,16章,《C语言程序设计......
  • 2023-2024-1 20231320 《计算机基础与程序设计》第十一周学习总结
    2023-2024-120231320《计算机基础与程序设计》第十一周学习总结作业信息这个作业属于哪个课程<班级的链接>(2023-2024-1计算机基础与程序设计)这个作业要求在哪里<作业要求的链接>(2022-2023-1计算机基础与程序设计第十一周作业)这个作业的目标<自学《计算机基......
  • 2023-2024-1 20231405《计算机基础与程序设计》第十一周学习总结
    2023-2024-120231405《计算机基础与程序设计》第十一周学习总结作业信息作业属于哪个课程https://edu.cnblogs.com/campus/besti/2023-2024-1-CFAP作业要求在哪里https://edu.cnblogs.com/campus/besti/2023-2024-1-CFAP/homework/13009作业的目标自学《......
  • 123
    #Lab1_简单集群搭建##实验记录实验环境:Vmware下的CentOS7.6拟机###单机配置环境参考资料:[上海大学计算机体系结构实验四HPL安装和测试](https://blog.csdn.net/qq_51413628/article/details/130628390)####1、安装、编译BLAS、CBLAS首先下载gcc和gfortran,完成......
  • 2023南海区区赛模拟(初中组)T3删除区间
    第3题   删除区间 查看测评数据信息开始给你N个元素的数组(下标从1开始),数组里的数是1,2,3,…,N,然后执行D次删除操作。每次删除操作给一个区间[lo,hi],要求删除下标位置从lo到hi的数,数组里的数据个数会减少hi-lo+1个。例如,N=8,第1次删除操作区间是[34],结果为”1,2,5,6,7,8......
  • 2023 (ICPC) Jiangxi Provincial Contest -- Official Contest
    Preface伟大的徐神终于来和我们一起训练了,然后这场中期一眼秒了可做题中最难的G虽然中间因为我搞错了徐神的意图给徐神原来正确的主席树删了搞了个错的上去浪费了快一个小时但无所谓最后结束前把所有可做题全写了强势捧杯(打弱省省赛打出自信了属于是)A.DrillWoodtoMakeFi......
  • 12.9闲话
    奋战冬三月昨日跑操排名第一名...第二名....第三名....倒第一....到第二....到第三....奋战冬三月昨日扣分明细xx班有人掉队扣30分xx班有人拒报学号扣30分....好各班,操前班呼!一班,跑步,走!2班跟上!....9班和十班的班距缩小!!十一班十二班缩小班距!跟上!13班口号声音很响!..........
  • 2023南海区区赛模拟(初中组)T1询问"好数"
    第1题   询问"好数" 查看测评数据信息如果整数a=b^2或者a =b^3,其中正整数b>=1,那么a就是"好数"。即:如果a是平方数或者立方数,那么a就是"好数"。现在有n个询问,第i个询问给出一个整数x[i],表示询问1至x[i]范围内有多少个"好数"。输入格式 第一行,一个整数n。1<=......
  • 集训队胡策2023-2024补题记录
    CTT结束后发现自己胡策题都没咋补,这下尴尬了。主要原本胡策就打着玩的(怎么CTT平均难度比胡策还要简单啊.jpg。还是随便写几篇题解吧。先来个补全进度表,根据胡策OJ或qoj通过情况来评判:测试赛(10.22)A+BProblem奥林匹克五子棋元旦激光炮Day1(10.23)优惠购......