思维dp ---- 复杂状态找中间状态作为dp状态 1552F - Telepanting
题目链接
题目大意:
有个蚂蚁从000号点要到xn+1x_n+1xn+1的位置。
在x0,x1,x2,x3,.....,xn+1,xnx_0,x_1,x_2,x_3,.....,x_{n+1},x_nx0,x1,x2,x3,.....,xn+1,xn的传送阵,每个xix_ixi传送阵可以把你传送回yi(yi<xi)y_i(y_i<x_i)yi(yi<xi)位置。但是每个传送阵有两种转态
- 0:0:0:这个传送阵无法传送,但是你经过它会变成状态111
- 1:1:1:这个传送阵正常工作,工作完之后变成状态000
问你需要多少时间走到xn+1x_n+1xn+1
解题思路:
- 首先我们当前在pospospos位置,那么所有xi<posx_i<posxi<pos的传送阵状态都变成了111
- 现在我们现在设dp[i]dp[i]dp[i]为假设第iii个传送阵为111,并且再次回到位置iii的时间!
- 那么转移就很明显了dp[i]=∑k=idxi−1dp[k]dp[i]=\sum_{k=idx}^{i-1}dp[k]dp[i]=∑k=idxi−1dp[k]
- idx是第一个位置≤yi的传送阵位置idx是第一个位置\leq y_i的传送阵位置idx是第一个位置≤yi的传送阵位置
- 最终答案就是ans=xn+1+∑i=1ndp[i]×[state[i]==1]ans=x_n+1+\sum_{i=1}^{n}dp[i]\times[state[i]==1]ans=xn+1+∑i=1ndp[i]×[state[i]==1]
AC代码:
#include <bits/stdc++.h>
#define mid ((l + r) >> 1)
#define Lson rt << 1, l , mid
#define Rson rt << 1|1, mid + 1, r
#define ms(a,al) memset(a,al,sizeof(a))
#define log2(a) log(a)/log(2)
#define lowbit(x) ((-x) & x)
#define IOS std::ios::sync_with_stdio(0); cin.tie(0); cout.tie(0)
#define INF 0x3f3f3f3f
#define LLF 0x3f3f3f3f3f3f3f3f
#define f first
#define s second
#define endl '\n'
using namespace std;
const int N = 2e6 + 10, mod = 998244353;
const int maxn = 500010;
const long double eps = 1e-5;
const int EPS = 500 * 500;
typedef long long ll;
typedef unsigned long long ull;
typedef pair<int,int> PII;
typedef pair<ll,ll> PLL;
typedef pair<double,double> PDD;
template<typename T> void read(T &x)
{x = 0;char ch = getchar();ll f = 1;while(!isdigit(ch)){if(ch == '-')f*=-1;ch=getchar();}while(isdigit(ch)){x = x*10+ch-48;ch=getchar();}x*=f;
}
template<typename T, typename... Args> void read(T &first, Args& ... args)
{read(first);read(args...);
}
int n;
int x[maxn], state[maxn];
ll sum[maxn], q[maxn];
int main() {IOS;cin >> n;for(int i = 1; i <= n; ++ i) {int y;cin >> x[i] >> y >> state[i];int j = lower_bound(x+1,x+i+1,y)-x;q[i] = ((sum[i-1] - sum[j-1] + mod) % mod + x[i] - y) % mod;sum[i] = (sum[i-1] + q[i]) % mod;}ll ans = 0;for(int i = 1; i <= n; ++ i) if(state[i]) {ans = (ans + q[i]) % mod;}cout << (ans + x[n] + 1) % mod;return 0;
}
思维dp ---- 复杂状态找中间状态作为dp状态 1552F - Telepanting相关推荐
- 动态规划: dp+递推——确定动态矩阵dp含义,确定每个状态下面临的选择和对结果值影响,选择符合题意的作为结果存储在dp中
1.动态规划:每一个状态一定是由之前的状态推导出来的,通过总结归纳发现递推关系 2.解决动态规划问题的步骤: 确定dp数组(dp table)以及下标的含义: 每个单元内 题目所求的值,一维.二维 确 ...
- nyoj995硬币找零(dp)
硬币找零 时间限制: 1000 ms | 内存限制: 65535 KB 难度: 3 描述 在现实生活中,我们经常遇到硬币找零的问题,例如,在发工资时,财务人员就需要计 算最少的找零硬币数,以便他们 ...
- 找规律/数位DP HDOJ 4722 Good Numbers
题目传送门 1 /* 2 找规律/数位DP:我做的时候差一点做出来了,只是不知道最后的 is_one () 3 http://www.cnblogs.com/crazyapple/p/3315436. ...
- [SOCI2005]最大子矩阵(DP) + [JXOI2018]守卫(DP) + [CQOI2016]手机号码(数位DP)[各种DP专练]
DP专练博客 DP专练 T1:最大子矩阵 题目 题解 代码实现 T2:守卫 题目 题解 代码实现 T3:手机号码 题目 题解 代码实现 T1:最大子矩阵 题目 这里有一个n*m的矩阵,请你选出其中k个 ...
- TKO 6-2 DP入门之2084(基本dp之数塔问题)
数塔 Problem Description 在讲述DP算法的时候,一个经典的例子就是数塔问题,它是这样描述的: 有如下所示的数塔,要求从顶层走到底层,若每一步只能走到相邻的结点,则经过的结点的数字之 ...
- cmd 找不到java power 可以_高三总是找不到学习状态?这几个方法一定可以帮到你!...
众所周知,高中生学习压力大,因为学科增加,知识量大,难度加深,常常让很多学生找不到学习状态. 尤其进入高三阶段,随着高考的一步步临近,同学们进入到紧张的复习备考状态,你追我赶,于是有些同学感到竞争激烈 ...
- 【POJ - 3744】Scout YYF I(概率dp,矩阵快速幂优化dp)
题干: 题目大意: 在一条不满地雷的路上(无限长),你现在的起点在1处.在N个点处布有地雷,1<=N<=10.地雷点的可能坐标范围:[1,100000000]. 每次前进p的概率前进一步, ...
- 【HDU - 6447】YJJ's Salesman(降维dp,树状数组优化dp)
题干: YJJ is a salesman who has traveled through western country. YJJ is always on journey. Either is ...
- 【BZOJ - 3036】绿豆蛙的归宿(概率DAG图dp,拓扑排序,概率dp,期望的线性性)
题干: 随着新版百度空间的下线,Blog宠物绿豆蛙完成了它的使命,去寻找它新的归宿. 给出一个有向无环的连通图,起点为1终点为N,每条边都有一个长度.绿豆蛙从起点出发,走向终点. 到达每一个顶点时,如 ...
最新文章
- 腾讯35亿美元抄底收购搜狗,产品张小龙和技术王小川双剑合璧
- 【Android 逆向】Dalvik 函数抽取加壳 ( 类加载流程分析 | DexPathList#findClass 函数分析 | DexFile#loadClassBinaryName 函数 )
- ubuntu 14.04 安装qq 2015
- 进程和线程(通信方式)、调度算法(6种)
- Android 获取设备ID,手机厂商,运营商,联网方式,获取系统语言,获取时区
- solidity 十六进制字符串转十六进制bytes
- Kaggle新赛:自动检测赛场上的头盔撞击事件
- nextJS和vueJS及Material-UI 简易搭建
- 扫描40亿可路由的 IPv4 地址后发现这些打印机的 IPP 端口遭暴露
- adalm pluto_Apache Pluto和Velocity集成教程示例
- 注册(六)之有效期过小
- 小米蓝牙耳机驱动_小米降噪项圈蓝牙耳机上手
- linux 怎么格式化u盘写保护,u盘写保护怎么去掉
- 职场领导想逼你走时,他会用哪些奇招逼你走?
- CF 592D(Super M-虚树直径)
- (官网)虚幻3--基础游戏快速入门
- 拓嘉启远电商:拼多多编写标题怎样才可以避开违规
- SQL 语句:不得使用外键与级联,一切外键概念必须在应用层解决
- android蓝牙打印机打印图片,如何使用打印机(通过蓝牙打印)从Android设备打印图像和一些数据?...
- voxsrc20_std_00-How many kinds of topology used in speaker recognition?