首页 > 其他分享 >week7

week7

时间:2023-02-13 21:25:11浏览次数:51  
标签:typedef int ll cin long tie week7

Day 1

蓝桥杯模拟赛 4

 

[蓝桥杯 2022 省 B] 刷题统计

思路:统计有多少整周,再统计最后一周的天数
#include<bits/stdc++.h>
using namespace std;
typedef pair<int,int> PII;
typedef long long ll;
const int N=1e5+10,INF=1e9,M=1e5+10;

int main(){
    cin.tie(0),cout.tie(0);
    ll a,b,n,ans=0;
    cin>>a>>b>>n;
    ans+=(n/(5*a+2*b)*7);
    n%=(5*a+2*b);
    if(n!=0){
        int t=n/a;
        if(t>5){
            ans+=5;
            n-=(a*5);
            ans+=(n/b);
            if(n%b)ans++;
        }
        else{
            ans+=t;
            if(n%a)ans++;
        }
    }
    cout<<ans;

    return 0;
}
View Code  

[蓝桥杯 2022 国 B] 齿轮

思路:由公式v=wr,得到最左边的半径是最右边半径的q倍;i从1到最大半径/q枚举r数组中是否存在i*q;或者求出r中所有存在的倍数,将r从小到大排序,ri的约数,若在r数组中存在,则存下其倍数
#include<bits/stdc++.h>
using namespace std;
typedef pair<int,int> PII;
typedef long long ll;
const int N=2e5+5;
int n,q,r[N],t;
bool a[N];
int main(){
    cin.tie(0),cout.tie(0);
    cin>>n>>t;
    int ma=0;
    for(int i=1;i<=n;++i){
        cin>>r[i];a[r[i]]=true;
        ma=max(r[i],ma);
    }
    while(t--){
        cin>>q;
        bool ok=false;
        for(int i=1;i<=ma/q;++i){
            if(a[i]&&a[i*q]){
                ok=true;
                break;
            }
        }
        if(ok)cout<<"YES\n";
        else cout<<"NO\n";
    }
    return 0;
}
View Code

 

 [蓝桥杯 2022 省 A] 求和

思路:求所有ai乘上a[i+1,...,n]的和
#include<bits/stdc++.h>
using namespace std;
typedef pair<int,int> PII;
typedef long long ll;
const int N=2e5+10,INF=1e9,M=1e5+10;
ll n,a[N],s[N];
int main(){
    cin.tie(0),cout.tie(0);
    cin>>n;
    for(int i=1;i<=n;++i){
        cin>>a[i];
        s[i]=s[i-1]+a[i];
    }
    ll ans=0;
    for(int i=1;i<n;++i){
        ll b=a[i]*(s[n]-s[i]);
        ans+=b;
    }
    cout<<ans;
    return 0;
}
View Code

 

[蓝桥杯 2022 省 B] 修建灌木

思路:最高高度为修剪一个轮回的长度
#include<bits/stdc++.h>
using namespace std;
typedef pair<int,int> PII;
typedef long long ll;
const int N=2e5+10,INF=1e9,M=1e5+10;
int n;
int main(){
    cin.tie(0),cout.tie(0);
    cin>>n;
    for(int i=1;i<=n;++i){
        if(i<=n/2){
            cout<<(n-i)*2<<'\n';
        }
        else{
            cout<<(i-1)*2<<'\n';
        }
    }
    return 0;
}
View Code

 

[蓝桥杯 2022 省 B] 李白打酒加强版

思路:dp f[i,j,k]:  状态表示:所有遇花i次,到店j次,酒k斗的种类          状态计算:1.到店,=f[i,j-1,k/2]   2.遇花,=f[i-1,j,k+1] 初始化:f[i,j,k]=0,f[0,0,2]=1
#include<bits/stdc++.h>
using namespace std;
typedef pair<int,int> PII;
typedef long long ll;
const int N=110,M=1e9+7;
int n,m,f[N][N][N];
int main(){
    cin.tie(0),cout.tie(0);
    cin>>m>>n;
    for(int i=0;i<=n;++i){
        for(int j=0;j<=m;++j){
            for(int k=0;k<N;++k){
                if(i==0&&j==0&&k==2)
                    f[i][j][k]=1;
                if(i==0&&j==0)continue;
                if(i>0)
                    f[i][j][k]=(f[i][j][k]+f[i-1][j][k+1])%M;
                if(j>0&&k%2==0)
                    f[i][j][k]=(f[i][j][k]+f[i][j-1][k/2])%M;
            }
        }
    }
    cout<<f[n-1][m][1];
    return 0;
}
View Code

 

 

[蓝桥杯 2022 国 C] 斐波那契数组

思路:斐波那契数组都满足a0=a1,且an=an-1+an-2,若数组不同,它们都呈倍数关系,求出前n项斐波那契数组,记录次数最多的倍数,可使修改次数最小
#include<bits/stdc++.h>
using namespace std;
typedef pair<int,int> PII;
typedef long long ll;
const int N=1e5+10,INF=1e9,M=1e6+10;
ll n,a[M],b[N];
int main(){
    cin.tie(0),cout.tie(0);
    cin>>n;
    b[1]=b[2]=1;
    for(int i=3;i<=n;++i){
        b[i]=b[i-1]+b[i-2];
    }
    ll ans=0,x,ma=0;
    for(int i=1;i<=n;++i){
        cin>>x;
        ma=max(ma,x);
        if(x%b[i]==0)
            a[x/b[i]]++;
    }
    for(int i=1;i<=ma;++i){
        ans=max(ans,a[i]);
    }
    cout<<n-ans;
    return 0;
}
View Code

 

 

[蓝桥杯 2022 省 A] 数的拆分

思路:引理:如果能把一个数表示为x1y1*x2y2(y1,y2>=2) 的形式,那么一定可以表示为 u2⋅v3 的形式。
#include<bits/stdc++.h>
using namespace std;
typedef pair<int,int> PII;
typedef long long ll;
const int N=4010;
int prime[N],tot;
bool not_prime[N];
void init(int n){
    for(int i=2;i<=n;++i)
        if(!not_prime[i]){
            prime[++tot]=i;
            for(int j=i+i;j<=n;j+=i)not_prime[j]=true;
        }
}
bool check(ll x)
{
    ll y = pow(x, 0.5);
    if(y * y == x || (y + 1) * (y + 1) == x)
        return true;
    y = pow(x, 1.0 / 3);
    if(y * y * y == x || (y + 1) * (y + 1) * (y + 1) == x || (y + 2) * (y + 2) * (y + 2) == x)
        return true;
    return false;
}
int main(){
    cin.tie(0),cout.tie(0);
    init(4000);
    int t;
    cin>>t;
    while(t--){
        ll x;
        cin>>x;
        if(check(x)){
            cout<<"yes\n";
            continue;
        }
        bool ok=true;
        for(int i=1;i<=tot;++i){
            if(x%prime[i]==0){
                int cnt=0;
                while(x%prime[i]==0){
                    cnt++;x/=prime[i];
                }
                if(cnt==1){
                    ok=false;
                    break;
                }
            }
        }
        if(ok&&check(x)){
            cout<<"yes\n";
        }
        else cout<<"no\n";
    }
    return 0;
}
View Code

 

 

[蓝桥杯 2022 国 B] 卡牌

  思路:将每种卡牌按卡牌数从小到大排序,每次增加前i种的卡牌,加到与i+1种卡牌数目相同,直到m减到小于i时加不了了,当加到第n种卡牌时,加m/n副牌
#include<bits/stdc++.h>
using namespace std;
typedef pair<int,int> PII;
typedef long long ll;
const int N=2e5+5;
ll n,m,a[N],b[N];
int main(){
    cin.tie(0),cout.tie(0);
    cin>>n>>m;
    ll mma=1e9;
    for(int i=1;i<=n;++i)cin>>a[i];
    for(int i=1;i<=n;++i){
        cin>>b[i];
        mma=min(mma,a[i]+b[i]);
    }
    ll ans=0;

    sort(a+1,a+n+1);
    for(int i=1;i<=n;++i){
        if(i==n){
            ans+=m/n;
            break;
        }
        ll t=a[i+1]-a[i];
        if(m>=i&&t!=0){
            ans=a[i]+min(t,m/i);
            m=m-min(t*i,m/i*i);
        }
        if(m<i||ans>=mma)break;
    }
    cout<<min(ans,mma);
    return 0;
}
View Code

 

 

标签:typedef,int,ll,cin,long,tie,week7
From: https://www.cnblogs.com/bible-/p/17117433.html

相关文章

  • ACM预备队-week7(DP)
    1.[NOIP2005普及组]采药题目链接:P1048[NOIP2005普及组]采药-洛谷|计算机科学教育新生态(luogu.com.cn)01背包,可以利用滚动数组优化为一维。1#include<bit......
  • 计算机结构-- week7 (缓存)
       缓存如何被使用: •Temporallocality:recentlyreferencedaddressesarelikelytobereferencedagain(reuse)   时间• Spatiallocality:If......
  • week7
    week7完成作业:\1.postgresql架构与原理。\2.基于流复制完成postgresql的高可用。\3.实现postgresql的时间点还原。\4.规划高可用的LAMP,要求wordpress网站放在NFS......
  • Week7-Application Layer
    Week7-ApplicationLayer现在有两个基本问题需要应用层解决其一是那个应用将获得数据,这个问题通过一个叫做端口的机制解决WhatdoestheApplicationLayerexpect......