问题 D: 染色
时间限制: 1 Sec 内存限制: 128 MB
[提交] [状态]题目描述
有编号为0到M 的(M+1)个格子,现在有N个操作 (x,y),表示将从x 到 y的格子染色,问一共有多少个格子被染色。
输入
第一行两个整数,分别表示N和M。
接下来有N行,每行两个整数,分别表示x和y。输出
输出一个整数,表示有多少个格子被染色。
样例输入 Copy
3 10 0 5 2 6 8 9
样例输出 Copy
9
提示
30%的数据满足N,M<=10000
100%的数据满足N,M<=1000000;任何操作保证0<=x<=y<=M。
由这个表可知:结合代码理解,高级版南门的树(中级版是排序)
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | |
头 | 1 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 |
尾 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 0 | 0 | 1 | 0 |
#pragma GCC optimize(3)
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef pair<int,int> pp;
#define fi first
#define se second
#define pb push_back
const double eps=1e-6;
const double pi=cos(-1);
const int N=1000005;
const int mod=1e9+7;
int n,bl,ml,ans=-1;
int head[N],tail[N];
int main()
{
int n,m;
scanf("%d%d",&n,&m);
for(int i=0;i<n;i++)
{
int a,b;
scanf("%d%d",&a,&b);
head[a]++;
tail[b]++;
}
int sum=0,ans=0;
for(int i=0;i<=m;i++)
{
sum+=head[i];
if(sum>0) ans++;
sum-=tail[i];
}
printf("%d",ans);
return 0;
}
/**************************************************************
Problem: 14888
User: 2019UPC110
Language: C++
Result: 正确
Time:273 ms
Memory:9836 kb
****************************************************************/
问题 D: 胖虎的序列
时间限制: 1 Sec 内存限制: 128 MB
[提交] [状态]题目描述
胖虎在SXYZ比较自闭,于是他自己就制造了一个序列,在这个序列里的数全部由正整数构成。
你别认为这个序列很神奇--其实就是1,2,3,4,...,n,其中n是给定的。胖虎满意地去上厕所时,小C,过来机惨胖虎,他准备将胖虎的序列全部变为0,可就在这时,胖虎突然回来了,小C的计划破灭了...吗?这时机智小C对胖虎说:我可以每次从这个序列中选取一些数,然后将选取的这些数减去一个相同的正整数。然后经过有限次这样的操作后(每次操作减去的正整数可以不同),这个序列就可以全变成0。输入
一个正整数n(1≤n≤109)
输出
最少操作次数
样例输入 Copy
【样例1】 2 【样例2】样例输出 Copy
【样例1】 2 【样例2】 2提示
样例1中序列为1,2--①我们第一次选取1,2,将这两个数都减去1,得到0,1--②,再在序列②中选取1,减去1,得到序列0,0操作次数为2
样例2序列为1,2,3--①我们第一次选取2,3,将这两个数都减去2,得到1,0,1--②,再在序列②中选取1,1,减去1,得到序列0,0,0操作次数为2
#pragma GCC optimize(3)
#include <bits/stdc++.h>
#include<stack>
using namespace std;
typedef long long ll;
const int N=100005;
int A[N];
int main()
{
ll n,m=1;
scanf("%lld",&n);
int cnt=0;
while(1)
{
if(m>n) break;
m*=2;
cnt++;
}
printf("%d",cnt);
return 0;
}
/**************************************************************
Problem: 15046
User: 2019UPC110
Language: C++
Result: 正确
Time:1 ms
Memory:2412 kb
****************************************************************/