考虑对于$\{a_{i+1},...,a_{n}\}$,在其前面插入$a_{i}$对$x_{i}$的影响(不考虑$a_{1}$到$a_{i-1}$):

1.$x_{i}=0$,因为其前面没有数字了

2.若$a_{j}+Tx_{j}>a_{i}-T$,则令$x_{j}$加1(字典序最大)

3.若$a_{j}+Tx_{j}\le a_{i}-T$,则$x_{j}$不变

这些操作对于$j$而言是独立的,因此依次遍历$\{a_{j-1},a_{j-2},...,a_{1}\}$即可确定$a_{j}$

对于每一个位置$k$的每一个取值分别dp,设$f[i][j]$表示当遍历到$a_{i}$时$x_{k}=j$的方案数,最终答案即$\sum_{i=1}^{n}i\cdot f[1][i]$,再乘上之后有$k^{n-i}$种序列

时间复杂度为$o(n^{3}k^{2})$(枚举位置$n$,枚举权值$k$,dp状态$n^{2}$,转移$k$),可以通过

 1 #include<bits/stdc++.h>
2 using namespace std;
3 #define N 105
4 #define mod 1000000007
5 int n,m,t,ans,a[N][N],f[N][N];
6 int main(){
7 scanf("%d%d%d",&n,&m,&t);
8 for(int i=1;i<=n;i++)
9 for(int j=1;j<=m;j++)scanf("%d",&a[i][j]);
10 for(int i=1;i<=n;i++){
11 ans=0;
12 for(int j=1;j<=m;j++){
13 memset(f,0,sizeof(f));
14 f[i][0]=1;
15 for(int k=i;k>1;k--)
16 for(int l=0;l<n;l++)
17 for(int x=1;x<=m;x++)
18 if (a[i][j]+t*l<=a[k-1][x]-t)f[k-1][l]=(f[k-1][l]+f[k][l])%mod;
19 else f[k-1][l+1]=(f[k-1][l+1]+f[k][l])%mod;
20 for(int k=1;k<n;k++)ans=(ans+1LL*k*f[1][k])%mod;
21 }
22 for(int j=i+1;j<=n;j++)ans=1LL*ans*m%mod;
23 printf("%d\n",ans);
24 }
25 }

[atAGC048E]Strange Relation的更多相关文章

  1. 【原】使用Bmob作为iOS后台开发心得——云端代码添加其他User的Relation关系

    本文转载请注明出处 —— polobymulberry-博客园 问题描述 我在User表中增加了两个列,分别为“我关注的人”(Relation关系)和“我的粉丝”(Relation关系)当我关注某个人 ...

  2. Laravel学习--关于Relation的坑

    前段时间比较忙,就没有坚持写博客,但发现这周末再想捡起来,好难,一直到了今天晚上,才决定坐下来写一篇,哈哈哈-- 最近在用 Laravel 5.2,踩了几个关于 Relation 的坑,在这里用博客记 ...

  3. timus 1175. Strange Sequence 解题报告

    1.题目描述: 1175. Strange Sequence Time limit: 1.0 secondMemory limit: 2 MB You have been asked to disco ...

  4. CF719C. Efim and Strange Grade[DP]

    C. Efim and Strange Grade time limit per test 1 second memory limit per test 256 megabytes input sta ...

  5. HDU 1548 A strange lift (最短路/Dijkstra)

    题目链接: 传送门 A strange lift Time Limit: 1000MS     Memory Limit: 32768 K Description There is a strange ...

  6. ACM : HDU 2899 Strange fuction 解题报告 -二分、三分

    Strange fuction Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Tot ...

  7. 小谈pointer和relation

    在apicloud的数据库中,pointer和relation是在很难让人理解. 通过不断的实践,终于有点明白了. pointer和relation作用:在nosql数据库中实现表之间的关联 首先来说 ...

  8. POJ 2891 Strange Way to Express Integers(拓展欧几里得)

    Description Elina is reading a book written by Rujia Liu, which introduces a strange way to express ...

  9. A strange lift_BFS

    Problem Description There is a strange lift.The lift can stop can at every floor as you want, and th ...

随机推荐

  1. 飞猪基于 Serverless 的云+端实践与思考

    作者 | 王恒飞(承荫) 本文整理自飞猪旅行前端技术专家--王恒飞(承荫)在[阿里云 Serverless Developer Meetup 上海站]上的分享.点击查看直播回放:https://dev ...

  2. Install WSL

    Install WSL Prerequisites You must be running Windows 10 version 2004 and higher (Build 19041 and hi ...

  3. 好程序员打造核心教培天团,着力培养IT高级研发人才

    随着数字化进程加快,各行各业数字化转型迫在眉睫,技术人才战略成为企业发力重点,IT高级研发人才已经成为企业的"核心资产",对企业发展起关键性作用,然而市场上高级研发人才极为稀缺.据 ...

  4. javascript的变量及数据类型

    1.变量的概念 变量是储存数据的内存空间 2.变量的命名规则 js变量的命名规则如下:以字母或者下划线开头可以包含字母.数字.下划线,不能包含特殊字符 3.变量的创建及初始化方法 方法一:先创建后使用 ...

  5. SpringCloud-SpringBoot-SpringCloudAlibaba对应版本选择

    一.SpringCloud-SpringBoot 对应的版本选择 SpringCloud官网常规方式只能查看最新的几个版本信息 https://spring.io/projects/spring-cl ...

  6. 【数据结构与算法Python版学习笔记】递归(Recursion)——定义及应用:分形树、谢尔宾斯基三角、汉诺塔、迷宫

    定义 递归是一种解决问题的方法,它把一个问题分解为越来越小的子问题,直到问题的规模小到可以被很简单直接解决. 通常为了达到分解问题的效果,递归过程中要引入一个调用自身的函数. 举例 数列求和 def ...

  7. spring session实现session统一管理(jdbc实现)

    最近在看一些关于spring session 的知识,特做一个笔记记录一下. 在项目中经常会遇到这么一种情况,同一个web项目有时需要部署多份,然后使用nginx实现负载均衡,那么遇到的问题就是,部署 ...

  8. RocketMQ源码详解 | Producer篇 · 其二:消息组成、发送链路

    概述 在上一节 RocketMQ源码详解 | Producer篇 · 其一:Start,然后 Send 一条消息 中,我们了解了 Producer 在发送消息的流程.这次我们再来具体下看消息的构成与其 ...

  9. IC封装的热特性

    ΘJA是结到周围环境的热阻,单位是°C/W.周围环境通常被看作热"地"点.ΘJA取决于IC封装.电路板.空气流通.辐射和系统特性,通常辐射的影响可以忽略.ΘJA专指自然条件下(没有 ...

  10. 查找最小生成树:克鲁斯克尔算法(Kruskal)算法

    一.算法介绍 Kruskal算法是一种用来查找最小生成树的算法,由Joseph Kruskal在1956年发表.用来解决同样问题的还有Prim算法和Boruvka算法等.三种算法都是贪心算法的应用.和 ...