首页 > 其他分享 >洛谷 P6146

洛谷 P6146

时间:2022-10-09 21:57:16浏览次数:83  
标签:洛谷 int 线段 long base exp ans P6146

由于博主是只鸽子,所以咕咕咕。()
不,应该是目录不在更新,请关注博客首页。
有空我把目录更新一下,好久不更了

传送门

You are Miserable (AT Lv.15)

思路

Stage 1

这题其实是个 DP 。没想到吧?











Stage 2

如果第 $ i $ 条线段不用,那就是 $ f_{i - 1} $ 。
用的话,一部分是 $ f_{i - 1} $ ,另一部分呢?











Stage 3

令 $ sum_i $ 表示在数轴上 $ i $ 之前有多少个右端点
另一部分:如果之前有 $ x $ 条线段不与第 $ i $ 条线段相交,则这 $ x $ 条线段的一个子集都能交给 $ i $ 来加一,也就是 $ 2^x $ 。
所以,$ f_i = 2f_{i - 1} + 2^x $ 。
最终答案显然是 $ f_n $ 喽。

代码

注意由于 $ 2^x $ 可能会爆 $ ull $ ,所以要用快速幂。

#include <bits/stdc++.h>
using namespace std;

#define MOD 1000000007

int f[100005], sum[200005];
pair<int, int> seg[100005];

long long qpow(long long base, long long exp, long long mod) {
	long long ans = 1;
	while (exp) {
		if (exp & 1) {
			ans = (ans * base) % mod;
		}
		exp >>= 1;
		base = (base * base) % mod;
	}
	return ans;
}

int main() {
	int n;
	scanf("%d", &n);
	for (int i = 1; i <= n; i++) {
		scanf("%d %d", &seg[i].first, &seg[i].second);
	}
	sort(seg + 1, seg + 1 + n);
	for (int i = 1; i <= n; i++) {
		sum[seg[i].second]++; 
	}
	for (int i = 1; i <= 2 * n; i++) {
		sum[i] += sum[i - 1];
	}
	sort(seg, seg + n);
	for (int i = 1; i <= n; i++) {
		f[i] = (f[i - 1] * 2 % MOD + qpow(2, sum[seg[i].first - 1], MOD)) % MOD;
	}
	printf("%d", f[n]);
	return 0;
}

标签:洛谷,int,线段,long,base,exp,ans,P6146
From: https://www.cnblogs.com/AProblemSolver/p/16773809.html

相关文章

  • Solution -「CSTC 2017」「洛谷 P3772」游戏
    \(\mathscr{Description}\)  有\(n\)个随机真值\(x_{1..n}\),已知\(P(x_1=1)=p_1\),对于\(2\lei\len\),\(P(x_i=1\midx_{i-1}=1)=p_i\),\(P(x_i=1\midx_{i......
  • 洛谷 P2387 [NOI2014] 魔法森林 题解【动态加点 SPFA】
    题目大意给定一个由\(n\)个点\(m\)条边的无向图,每条边有权值\((a,b)\),求一条路径使这条路径上的\((a_{\max}+b_{\max})\)最小。思路正解应该是LCT动态维护MST......
  • Solution -「SDOI 2017」「洛谷 P3706」硬币游戏
    \(\mathscr{Description}\)  Link.  给定\(n\)个长度为\(m\)且两两不同的字符串\(S_{1..n}\),字符集\(|\Sigma|=2\).各位置独立在\(\Sigma\)中均匀随机,......
  • P5730 【深基5.例10】显示屏 洛谷
    #include<stdio.h>intmain(){charstr1[30]="XXX..XXXXXXXX.XXXXXXXXXXXXXXXX";charstr2[30]="X.X..X..X..XX.XX..X....XX.XX.X";charstr3[30]="X.......
  • 网络流24题 -洛谷 P2762 太空飞行计划问题
    P2762太空飞行计划问题题意给你n个实验m个仪器(原题中n和m反了一下)第i个实验会给一个赞助费\(c[i]\)每个实验都有相应的实验仪器买第m个实验器材要\(c_2[i]\)的钱问......
  • 洛谷——P1071 [NOIP2009 提高组] 潜伏者
    本次博客,我将记录洛谷P1071潜伏者[NOIP2009提高组]潜伏者理解题意:对于failed的情况,有以下三种:1.扫描完毕后发现某个字母没有对应的翻译2.扫描过程中发现自相矛盾,这......
  • *洛谷 P1018 [NOIP2000 提高组] 乘积最大(dfs+高精度)
    说在前头此篇题解是记录自己的暴力写法,并不能100分满分通过洛谷测试数据(只有60)纯纯记录写法而写https://www.luogu.com.cn/problem/P1018我还说这么简单呢这题,想太......
  • [题解]洛谷 P4700
    经典题没做出来,是不是该死?是不是该死?首先缩点什么的都是套路性的,然后发现一个事,你要是缩完点直接做,就相当于有向无玕图上标记一些点,求另一些点能到达多少个标记点,这个似乎......
  • 洛谷1351 -- 联合权值
      遍历一遍树,在遍历的同时,传入节点u的父亲和祖父,计算答案#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>usingnamespacestd;......
  • 洛谷 P1340 兽径管理
    题干 悲怆历程(主要还是因为自己作死)啊这个题,一眼就是克鲁斯卡尔最小生成树简介题意:$n$个点,添加$W$次边,每次添加边都询问最小生成树其中1<=n<=200,1<=......