栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

10月4日训练总结

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

10月4日训练总结

A:

题意:输入A,B,C,请输出A-B之间C的倍数(任意一个)

代码如下

#include

using namespace std;

typedef long long ll;

int main(void)
{
    ll a,b,c;
    cin>>a>>b>>c;
    ll k=c;
    for(k;k<=b;k+=c)
    {
        if(a<=k&&k<=b)
        {
            cout< 

B

进制转化题,把两个数先转化为十进制,相加输出答案即可

代码如下

#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 

using namespace std;

typedef long long ll;

int main(void)
{
    ios::sync_with_stdio(false);
    int k;
    cin>>k;
    string a,b;
    cin>>a>>b;
    string an="",bn="";
    for(int i=a.size()-1;i>=0;i--)
        an+=a[i];
    for(int i=b.size()-1;i>=0;i--)
        bn+=b[i];
    ll sum1=0,sum2=0,sum;
    for(int i=0;i

C

输入一个N,一个大小为N的数组,一个X,请问加到多少次和大于X,当数组用完了从头再来一次。

思路,把数组的和求出来,然后看第几次和大于X,这样就不会超时了。代码如下

#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 

using namespace std;

typedef long long ll;

int a[100005];

int main(void)
{
    ios::sync_with_stdio(false);
    int n;
    cin>>n;
    ll sum=0;
    for(int i=0;i>a[i];
            sum+=a[i];
        }
    ll x;
    cin>>x;
    ll ans=(x/sum)*n;
    ll rest=x%sum;
    for(int i=0;i 

D

两个操作,把前两个数相加对十求余,加到集合前面,

或者相乘对十求余,加到前面,最后变成一个数。

问每个数有多少种可能?

思路,线性dp,每次加上前一次的即可

代码如下:

#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 

using namespace std;

typedef long long ll;

int a[100005];
int dp[100005][10];

const int N=998244353;

int n;

int main(void)
{
    ios::sync_with_stdio(false);
    int n;
    cin>>n;
    for(int i=1;i<=n;i++)
    {
        cin>>a[i];
    }
    dp[1][a[1]]=1;
    for(int i=1;i<=n-1;i++)
    {
        for(int j=0;j<=9;j++)
        {
            dp[i+1][(j+a[i+1])%10]=(dp[i][j]+dp[i+1][(j+a[i+1])%10])%N;
            dp[i+1][(j*a[i+1])%10]=(dp[i][j]+dp[i+1][(j*a[i+1])%10])%N;
        }
    }
    for(int i=0;i<=9;i++)
    {
        cout< 

F:

我不会写,我也看不太懂,贴一下大佬的答案吧

AtCoder Beginner Contest 220 F - Distance Sums 2_m0_51780913的博客-CSDN博客题目在这里题目描述大致意思就是给你n个点n-1条边,然后依次求出每个点到其他所有点的距离和样例Sample Input 1 31 22 3Sample Output 1 323Sample Input 2 21 2Sample Output 2 11Sample Input 3 61 61 51 31 41 2Sample Output 3 599999算法:推公式加dfs求解O(n)我们先求一个点的∑jNdist(i,j)suhttps://blog.csdn.net/m0_51780913/article/details/120499103?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522163386559116780274184730%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=163386559116780274184730&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~baidu_landing_v2~default-3-120499103.pc_search_ecpm_flag&utm_term=F+-+Distance+Sums+2&spm=1018.2226.3001.4187

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/312364.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号