zoukankan      html  css  js  c++  java
  • CCPC—2021网络选拔赛

    做题5min,交题2h。是从未有过的体验!~鉴于网站全程都是炸的.....故应该全程都有1W同学在线热血奋战。我愿称之为 真 · 网络选拔赛!

    1001-A Cut The Wire

    题目描述:

    在[1,∞]的坐标轴上,问有几组跨越 n 的,满足以下条件的数对:

    1. a > n AND a / 2 <= n

    2. a * 3 + 1 > n AND a <= n

    悲惨遭遇:

    一开始算法O(n)级,从 ( n - 1 ) / 3  ~  n * 3 + 1 范围内枚举,看不到提交反馈,也不知道交没交上,鉴于发现没交上,代码给队友,大家一起交,交了好几次,于是TEL好几次。看到TEL之后开始着手优化,打了下表,规律明显,12个数一周天诶!成功签到。

     

    #include<cstdio>
    using namespace std;
    long long int f[12] = {0, 2, 2, 4, 3, 5, 5, 7, 7, 9, 8, 10};
    int main()
    {
        long long int t, n, ans;
        scanf("%lld", &t);
        while(t--)
        {
            scanf("%lld", &n);
            printf("%lld
    ", n / 12 * 10 + f[n % 12]);
        }
        return 0;
    }
    

     

      

    1006-F Power Sum

    题目描述:

    要求在有限区间[ 1 ,n + 2 ]内用连续平方数(1 , 4 , 9 , 16 , 25 ...)+ OR - 操作表示出给定整数 n ,并打印操作序列。

    悲惨遭遇:

    平方差公式,任意四个连续平方数:

    a2  - (a - 1)2  - (a - 2)2  + (a - 3)2 = 4 恒成立

    前四个数也可以通过构造表示出1 , 2 , 3 , 4:

    1 4 9 16
    1 3 4

    2

      5 6 4
        12 10
        ... ...

    于是我们 %4 构造即可,后面补 1001,易知 4 个数可以表示 4,n + 2个数就一定够表示 n.

     

    #include <iostream>
    uisng namespace std;
    int main()
    {
        int n, k, i, num, mod, T;
        scanf("%d", &T);
        while(T--)
        {
            scanf("%d", &n);
            mod = n % 4;
            num = (n - 1) / 4;
            k = (num * 4);
            if(mod == 1)
            {
                k += 1;
                printf("%d
    ", k);
                printf("1");
            }
            if(mod == 2)
            {
                k += 4;
                printf("%d
    ", k);
                printf("0001");
            }
            if(mod == 3)
            {
                k += 2;
                printf("%d
    ", k);
                printf("01");
            }
            if(mod == 0)
            {
                k += 4;
                printf("%d
    ", k);
                printf("1001");
            }
            for(i = 0; i < num; i ++)
                printf("1001");
            printf("
    ");
        }
        return 0;
    }
    

     

      

     

      

    1009 G应该是计数型动态规划吧,整理了这么久还是没写出来,Fw就是我了。

    好了,现在就会这两题...dalao快来传送门!

     

  • 相关阅读:
    【重学计算机】计组D2章:数据表示
    【重学计算机】计组D1章:计算机系统概论
    计算机底层原理杂谈(白话文)
    阿里云安装wordpress遇到的问题
    wordpress数据表结构
    家用计费系统ER图
    java 类中的属性为什么一般都是私有的
    centos 软件库安装
    linux下启动tomcat----Cannot find ./catalina.sh
    jfreechart图表汉字乱码问题解决方案
  • 原文地址:https://www.cnblogs.com/thx2199/p/15200834.html
Copyright © 2011-2022 走看看