zoukankan      html  css  js  c++  java
  • 一模 (5) day1

    第一题:

    题目大意:求出1-10^n 这些数中,包含数字3的有多少个。 n<=1000;

    解题过程:

    1.这题一看就是高精度+递推。。如果n=1000,那么假设个位是3,其他999位任意。。那么就有10^999个数了。

    2.用F[i] 表示 所有位数为 i的数中 有多少个包含3的,g[i] 表示 1-10^i 中有多少个包含3的。

    显然 g[i]=sum(F[1...i]) ;F[i]的转移需要分类讨论:

    A:第i位是3,那么有10^(i-1)个数字。

    B:第i位不是3,那么第i位有8种选择,剩下的数有g[i-1]种方案,一共8*g[i-1];

    所以F[i]=8*g[i-1]+10^(i-1);

    另外在求10^(i-1)的时候,我用了(int)pow(10,i-1),结果却得到: 

    (int)pow(10,1)=10

    (int)pow(10,2)=99 

    (int)pow(10,3)=1000

    (int)pow(10,4)=9999;

    原来pow返回的是一个实数,实际存储的时候 10000 就是9999.99999999...99 强转成int 就会损失精度。

    吸取个教训。

    第二题:

    题目大意:选取和不超过S的若干个不同的正整数,使得所有数的约数(不含它本身)之和最大。S<=1000

    解题过程:

    1.水题。。把每个数的约束和计算出来就变成一个裸的01背包问题。

    第三题:

    题目大意:求最大二分图匹配。。

    解题过程:

    1.果断不会做,果断爆搜,果断骗到30分。。把匈牙利算法琢磨透了再补上。

  • 相关阅读:
    python函数收集不确定数量的值
    PHP比较数组、对象是否为空
    PHP实现斐波那契数列
    Python之复制列表
    1004. 最大连续1的个数 III(滑动窗口)
    276. 栅栏涂色(动态规划)
    376. 摆动序列
    148. 排序链表
    143. 重排链表
    1530. 好叶子节点对的数量
  • 原文地址:https://www.cnblogs.com/vb4896/p/3935198.html
Copyright © 2011-2022 走看看