1. 程式人生 > >LibreOJ #515. 「LibreOJ β Round #2」貪心只能過樣例

LibreOJ #515. 「LibreOJ β Round #2」貪心只能過樣例

tdi thml http column printf name target sum pro

題目描述

技術分享

一共有 nnn個數,第 iii 個數 xix_ix?i?? 可以取 [ai,bi][a_i , b_i][a?i??,b?i??] 中任意值。
S=∑xi2S = \sum{{x_i}^2}S=x?i???2??,求 SSS 種類數。

輸入格式

第一行一個數 nnn。
然後 nnn 行,每行兩個數表示 ai,bia_i,b_ia?i??,b?i??。

輸出格式

輸出一行一個數表示答案。

樣例

樣例輸入

5
1 2
2 3
3 4
4 5
5 6

樣例輸出

26

數據範圍與提示

1≤n,ai,bi≤1001 \le n , a_i , b_i \le 1001n,a?i??,b?i??100

dp+bitset優化

屠龍寶刀點擊就送

#include <bitset>
#include <cstdio>
#define N 105

using namespace std;
bitset<N*10000>dp[N];
int n,l[N],r[N];
int
main() { scanf("%d",&n); dp[0]=1; for(int i=1;i<=n;++i) { scanf("%d%d",&l[i],&r[i]); for(int j=l[i];j<=r[i];++j) dp[i]|=dp[i-1]<<(j*j); } printf("%d\n",dp[n].count()); return 0; }

LibreOJ #515. 「LibreOJ β Round #2」貪心只能過樣例