2019寒假训练赛02解题报告

比完后等到12点成功一发呼符艾蕾get o( ̄▽ ̄)ブ(卡池刚开时70多石头都没出货…

A - Partition CodeForces - 946A

题意:给你一堆数,将其分成两部分,两部分分别求和再相减,使得差最大,求最大差。

题解:非负数直接加,负数直接减,直接得到答案。

B - A/B HDU - 1576

题意:要求(A/B)%9973,但由于A很大,我们只给出n(n=A%9973)(我们给定的A必能被B整除,且gcd(B,9973) = 1)。

题解:数论问题,设A=k *9973+n,A/B=q *9973+x,得到(x *B)%9973=n,我们枚举0到9972的x值,即可得到最终答案。

#include<iostream>
#include<cstdio>
using namespace std;
int main()
{
    int t;
    scanf("%d",&t);
    while(t--)
    {
        long long b,n;
        scanf("%lld%lld",&n,&b);
        for(long long i=0;i<=9972;i++)
        {
            if((b*i)%9973==n)
            {
                printf("%lld\n",i);
                break;
            }
        }
    }
}

C - Rightmost Digit HDU - 1061
题意:给你一个正整数n,求n^n的最右边的数字为几。

题解:找规律,我是一个一个找的,真的恶心到了。

#include<iostream>
#include<cstdio>
using namespace std;
int main()
{
    int t;
    while(scanf("%d",&t)!=EOF)
    {
        while(t--)
        {
            long long x;
            scanf("%lld",&x);
            long long now=x%10;
            if(now==0||now==1||now==5||now==6||now==9)
            {
                printf("%lld\n",now);
            }
            if(now==2)
            {
                if(x%4==0)
                {
                    printf("6\n");
                }
                else
                {
                    printf("4\n");
                }
            }
            if(now==3)
            {
                if(x%4==1)
                {
                    printf("3\n");
                }
                else
                {
                    printf("7\n");
                }
            }
            if(now==4)
            {
                printf("6\n");
            }
            if(now==7)
            {
                if(x%4==1)
                {
                    printf("7\n");
                }
                else
                {
                    printf("3\n");
                }
            }
            if(now==8)
            {
                if(x%4==0)
                {
                    printf("6\n");
                }
                else
                {
                    printf("4\n");
                }
            }
        }
    }

    return 0;
}

D - Tempter of the Bone HDU - 1010

题意:给你一个n*m的地图和一个时间t,问能否再第t秒正好到达出口。

题解:dfs+剪枝。这个奇偶剪枝真的惊到我了,起点和终点距离与时间必须奇偶性相同,否则直接可以砍掉。

E - Pie HDU - 1969

题意:有n个派和k个朋友,你要切出k+1块等大的派来分给每个朋友和自己,问每人最大可以分到的派有多大(派只能切,不可以拼)。

题解:二分。这个题一开始没看懂题意,怎么也过不了样例,果然英语能力太差了。

#include<iostream>
#include<cstdio>
#include<cmath>
using namespace std;
double a[10005];
const double pi=acos(-1.0);
int n,f;
bool check(double mid)
{
    int total=0;
    for(int i=1;i<=n;i++)
    {
        total+=int(a[i]/mid);
    }
    if(total>=f+1) return 1;
    else return 0;
}
int main()
{
    int t;
    scanf("%d",&t);
    while(t--)
    {
        scanf("%d%d",&n,&f);
        double l=0,r=0;
        for(int i=1;i<=n;i++)
        {
            scanf("%lf",&a[i]);
            a[i]=a[i]*a[i]*pi;
            r+=a[i];
        }
        double ans=0;
        while(r-l>0.00001)
        {

            double mid=(l+r)/2;
            if(check(mid))
            {
                l=mid;
                ans=max(ans,l);
            }
            else
            {
                r=mid;
            }
        }
        printf("%.4lf\n",ans);
    }
    return 0;
}

G - What Are You Talking About HDU - 1075

题意:给你个单词一一对应的词典,让你翻译句子。

题解:map模拟。这题我疯狂RE也不知道咋回事,后来直接重新写了。

不过知道了m.find()函数来判断map中有没有某个元素。

H - 水果 HDU - 1263

题解:用的set模拟。

I - 最大连续子序列 HDU - 1231

题意:给你一个序列,找出和最大的连续子序列,输出最大和、连续子序列的第一个元素、最后一个元素,如果整个序列都为负数则输出0 、序列第一个元素、最后一个元素。

题解:显然最大连续子序列的第一个元素一定为非负数,我求了个前缀和,然后每找到一个非负数就开始往后找右边界,O(1)比较。

#include<iostream>
#include<cstdio>
#include<map>
using namespace std;
int a[10005];
int sum[10005];
int main()
{
    int n;
    while(scanf("%d",&n)!=EOF)
    {
        if(n==0) break;
        for(int i=1;i<=n;i++)
        {
            sum[i]=0;
        }
        for(int i=1;i<=n;i++)
        {
            scanf("%d",&a[i]);
            sum[i]=sum[i-1]+a[i];
        }
        int l=0,r=0;
        int ans=-1;
        for(int i=1;i<=n;i++)
        {
            if(a[i]>=0)
            {
                for(int j=i;j<=n;j++)
                {
                    if(sum[j]-sum[i-1]>ans)
                    {
                        ans=sum[j]-sum[i-1];
                        l=i,r=j;
                    }
                }
            }
        }
        if(l==0&&r==0)
        {
            printf("0 %d %d\n",a[1],a[n]);
        }
        else
        {
            printf("%d %d %d\n",ans,a[l],a[r]);
        }

    }
    return 0;
}

J - Unimodal Array CodeForces - 831A

题意:给你一个序列,问你这个序列是否满足(1)开始严格上升,(2)后来不变,(3)再严格下降的特点。(1)和(3)条件可以不存在其中一个,也可以都不存在。

题解:题解即题面,没啥好说的,注意细节。附上渣渣代码,写的我都快不知道我想干啥了。

#include<iostream>
#include<cstdio>
#include<map>
using namespace std;
int a[105];
int main()
{
    int n;
    while(scanf("%d",&n)!=EOF)
    {
        for(int i=1;i<=n;i++)
        {
            scanf("%d",&a[i]);
        }
        bool flag=1;
        int pd=0;
        int now=1;
        while(now<=n)
        {
            now++;
            if(a[now]==a[now-1])
            {
                if(pd==0)
                pd=a[now];
                else if(a[now]!=pd)
                flag=0;
            }
            if(pd!=0&&a[now]>a[now-1])
            {
                flag=0;
            }
            if(a[now]<a[now-1])
            {
                break;
            }
        }
        while(now<=n)
        {
            now++;
            if(a[now]>=a[now-1])
            {
                flag=0;
                break;
            }

        }
        if(flag)
        {
            printf("YES\n");
        }
        else
        {
            printf("NO\n");
        }
    }
    return 0;
}

1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。
1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值