1 条题解

  • 0
    @ 2025-8-24 22:42:10

    自动搬运

    查看原文

    来自洛谷,原作者为

    avatar Cloud_Umbrella
    Hard work always pays off

    搬运于2025-08-24 22:42:10,当前版本为作者最后更新于2023-08-14 13:08:48,作者可能在搬运后再次修改,您可在原文处查看最新版

    自动搬运只会搬运当前题目点赞数最高的题解,您可前往洛谷题解查看更多

    以下是正文


    试题 A:纯质数

    因为是提交答案题,根本不用考虑什么时间空间,只要能算出正确答案就行。不管用什么筛法,筛出来就行。这里放一份拆位的代码。

    int a[10],len;
    while(n){
    	a[++len]=n%10;
    	n/=10;
    }
    

    answer:19031903

    试题 B:完全日期

    直接暴力枚举即可。把每个月的天数存在一个数组里,如若大于原本的天数,则月份加一,日变为一(如果变回零,则循环内要先自增)。月份同理。不要忘记判断闰年。answer:977977

    试题 C:最小权值

    题目中已给出公式,直接套用。核心代码:

    for(int i=2;i<=2021;i++){
    	for(int j=0;j<=i-1;j++){
    		long long k=1+2*W[j]+3*W[i-j-1]+j*j*(i-j-1);
    		W[i]=min(W[i],k);
    	} 
    }
    

    answer:26536313722653631372

    试题 D:覆盖

    这是一道状态压缩动态规划,用 fi,j{\large f_{i,j}} 表示第 ii 行覆盖状态为 jj 的方案数,而现在这个状态是由上一行推导出来的。为方便计算,我们将是否合法标记为 0011,将横向放置或纵向放置也标记为 0011,统计合理的方案数即可。

    answer:1298881612988816

    Code

    #include<iostream>
    using namespace std;
    int main() {
        string ans [] = {
            "1903",
            "977",
            "2653631372", 
            "12988816",
        };
        char T;
        cin >> T;
        cout << ans[T - 'A'];
        return 0;
    }
    
    • 1

    信息

    ID
    7936
    时间
    1000ms
    内存
    128MiB
    难度
    (无)
    标签
    递交数
    0
    已通过
    0
    上传者