ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

2022杭电暑期多校训练营2

2022-07-24 20:34:17  阅读:115  来源: 互联网

标签:cnt read ll 多校 long 杭电 int 2022 ans


1,2,3,4,5,6,7,8,9,10,11,12

1002 模拟,把所有std::make_tuple忽略掉即可。

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
ll read()
{
    ll x;scanf("%lld",&x);return x;
}
string s;
int main()
{
    for(int t=read();t;t--)
    {
        cin>>s;
        for(int i=0;i<s.length();i++)
        {
            if(s[i]=='-'||s[i]=='('||s[i]==')'||s[i]>='0'&&s[i]<='9'||s[i]==',')
                cout<<s[i];
        }
        cout<<endl;
    }
}
2

 

1009被gcf坑了,本来只需要改一下的,最后重构代码发现没有原来的版本好。。只需要质因数分解然后判断是否有满足条件的质因数。

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
ll read()
{
    ll x;scanf("%lld",&x);return x;
}

long long quick(long long  a,long long  b,ll mod)
{
    long long ans=1;
    for(;b;b>>=1,a=a*a%mod)
        if(b&1)ans=ans*a%mod;
    return ans%mod;
}

ll P,Q,data,xx,sum,cnt;
ll prime[4000000],ans[4000000];
void work()
{

    P=read();Q=read();data=read();
    xx=P*Q-1;
    sum=0;cnt=0;
    for(int i=2;i<=2000010;i++)
    {
        if(xx%i==0)
        {
            sum++;
            prime[sum]=i;
            while(xx%i==0)
                xx=xx/i;
        }
    }
    if(xx!=1)
        sum++,prime[sum]=xx;
    for(int i=1;i<=sum;i++)
    {
        if(prime[i]>P&&prime[i]>Q&&prime[i]>data)
        {
            cnt++;
            ans[cnt]=data*Q%prime[i];
        }
    }
    if(cnt!=1)
    {
        cout<<"shuanQ\n";
        return ;
    }
    cout<<ans[1]<<endl;
}
int main()
{
    for(int t=read();t;t--)
    {
        work();
    }
}
9

 

1012优雅的暴力,小范围内暴力,再大一点的直接用365凑。

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
ll read()
{
    ll x;scanf("%lld",&x);return x;
}
ll f[1001000];
int main()
{
    memset(f,0x3f,sizeof(f));
    f[0]=0;
    for(ll i=0;i<=1000000;i++)
    {
        if(f[i]!=f[1000999])
        {
            f[i+7]=min(f[i+7],f[i]+1);
            f[i+31]=min(f[i+31],f[i]+1);
            f[i+365]=min(f[i+365],f[i]+1);
        }
    }
    for(ll t=read();t;t--)
    {
        ll n=read();
        if(n<=1000000)
        {
            if(f[n]==f[1000999])
                printf("-1\n");
            else
                printf("%lld\n",f[n]);
        }
        else
        {
            ll ans=f[1000999];
            for(ll i=n%365;i<=1000000;i+=365)
            {
                if(f[i]!=f[1000999])
                    ans=min(ans,f[i]+(n-i)/365);

            }
            printf("%lld\n",ans);
        }
    }
}
12

 

标签:cnt,read,ll,多校,long,杭电,int,2022,ans
来源: https://www.cnblogs.com/qywyt/p/16515368.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有