zoukankan      html  css  js  c++  java
  • 【巧妙思维】【4-6】Problem F

    题意:有n个正方体,边长为A[i] 当A[k]-A[p]<=lim 时 k可以放在p上面,

    问有多少种放法;


    一开始被数据范围吓到了 ,以为是n^3算法,答案是nlogn


    从小到大排序,一个一个插入,因为从小到大,所以插入一个元素时,只要管插入位置前面的元素大小关系,不用管后面的(相减一定<=0) 

    直接乘法原理即可


    (1+k1)(1+k2).....k1即排序后 ,K[i]表示排序后 前面与A[i]相减小于lim的元素个数


    #include <cstdio>
    #include <cstdlib>
    #include <cmath>
    #include <cstring>
    #include <ctime>
    #include <algorithm>
    #include <iostream>
    #include <sstream>
    #include <string>
    #define oo 0x13131313
    using namespace std;
    const int maxn=1111;
    int n,lim;
    int A[maxn];
    void input()
    {
        for(int i=1;i<=n;i++)
        scanf("%d",&A[i]);
    }
    void solve()
    {
        int ans=1;
        sort(A+1,A+n+1);
        for(int i=1;i<=n;i++)
        {
            int tot=1;
            for(int j=1;j<i;j++)
            {
                if(A[i]-A[j]<=lim) tot++;
            }
            ans=(ans*tot)%10007;
        }
        printf("%d
    ",ans);
    }
    void init()
    {
        freopen("a.in","r",stdin);
        freopen("a.out","w",stdout);
    }
    int main()
    {
       // init();
    	while(cin>>n>>lim)
        {
            input();
            solve();
        }
    }
    



  • 相关阅读:
    表格标签
    图片标签
    超链接标签
    媒体标签
    实体标签
    html常用的标签
    头信息的作用
    【bzoj5017】[Snoi2017]炸弹 线段树优化建图+Tarjan+拓扑排序
    【bzoj3309】DZY Loves Math 莫比乌斯反演+线性筛
    【bzoj4010】[HNOI2015]菜肴制作 拓扑排序+堆
  • 原文地址:https://www.cnblogs.com/zy691357966/p/5480376.html
Copyright © 2011-2022 走看看