16初出茅庐F题
2016-01-22 02:30
260 查看
F 奇怪的光照植物
Time Limit:500MS Memory Limit:65535K
题型: 编程题 语言: 无限制
描述
一种光照植物,用光照射一天就长1厘米。现在将这种植物种在一条直线型的
培养容器中,坐标从0到n-1,每一个整点位置种植一棵这种植物,即共n棵。
开始的时候所有植物的高度都为0。实验过程中,进行了m组,每组选择对范围为
[L,R]的植物进行光照a天,每组参数L、R、a由输入数据给出。
当所有实验结束后,我们想知道所有光照了奇数天的植物总的高度是多少(单位:厘米)。
输入格式
输入第一行包含一个整数T(T<=10),表示有T组测试数据。
对每一组测试数据,第一行是两个数n(1<=n<=10^6)和m(0<=m<=10^5),用空格分隔。
接下来的m行中每一行包含三个数L,R和a(0<=L<=R<=n-1,0<=a<=100),用空格分隔,表示一个操作。
输出格式
对于每组测试数据输出一行,所有实验操作后所有光照了奇数天的植物总的高度
输入样例
1
10 3
3 5 1
4 9 1
8 9 0
输出样例
5
Hint
一维区间覆盖问题,快去百度吧
Provider
admin
= =一开始查了查树状结构就直接用了,后面有简单的,刚好卡时间过了
树状结构:
还有一种,思路看代码:
Time Limit:500MS Memory Limit:65535K
题型: 编程题 语言: 无限制
描述
一种光照植物,用光照射一天就长1厘米。现在将这种植物种在一条直线型的
培养容器中,坐标从0到n-1,每一个整点位置种植一棵这种植物,即共n棵。
开始的时候所有植物的高度都为0。实验过程中,进行了m组,每组选择对范围为
[L,R]的植物进行光照a天,每组参数L、R、a由输入数据给出。
当所有实验结束后,我们想知道所有光照了奇数天的植物总的高度是多少(单位:厘米)。
输入格式
输入第一行包含一个整数T(T<=10),表示有T组测试数据。
对每一组测试数据,第一行是两个数n(1<=n<=10^6)和m(0<=m<=10^5),用空格分隔。
接下来的m行中每一行包含三个数L,R和a(0<=L<=R<=n-1,0<=a<=100),用空格分隔,表示一个操作。
输出格式
对于每组测试数据输出一行,所有实验操作后所有光照了奇数天的植物总的高度
输入样例
1
10 3
3 5 1
4 9 1
8 9 0
输出样例
5
Hint
一维区间覆盖问题,快去百度吧
Provider
admin
= =一开始查了查树状结构就直接用了,后面有简单的,刚好卡时间过了
树状结构:
#include<stdio.h> #include<stdlib.h> #include<string.h> #include<math.h> int n,m,c[1000003]; int lowbit(int x) { return x&(-x); } int sum(int x) { int sum=0; while(x>0) { sum+=c[x]; x-=lowbit(x); } return sum; } void inster(int x,int i) { while(x<=n) { c[x]+=i; x+=lowbit(x); } } int main() { int a,b,i,T,d; scanf("%d",&T); while(T--) { int count=0; int ttt; memset(c,0,sizeof(c)); scanf("%d%d",&n,&m); for(i=0;i<m;i++) { scanf("%d%d%d",&a,&b,&d); inster(b+2,-1*d); inster(a+1,1*d); } for(i=1;i<=n;i++) if((ttt=sum(i))%2==1) count+=ttt; printf("%d\n",count); } return 0; }
还有一种,思路看代码:
#include<stdio.h> #include<string.h> int d[1000005]; int main() { int l,r,a; int T,n,m; scanf("%d",&T); while(T--) { scanf("%d%d",&n,&m); memset(d,0,sizeof(d)); for(int i=1;i<=m;i++) { scanf("%d%d%d",&l,&r,&a); d[l]+=a; d[r+1]-=a; } int ans=0,count=0; for(int i=0;i<n;i++) { count+=d[i]; if(count%2==1) ans+=count; } printf("%d\n",ans); } }
相关文章推荐
- 快速学习JavaScript的6个思维技巧
- 暗时间读书笔记
- 你有没有意识到,计算时代已经悄然降临
- 穷人的饥饿思维
- 思维定势
- 关联性思维和给客户展示功能
- 经典的售前思维题目,一个很经典的故事
- 变革思维
- 肯定式探询---组织发展和变革中的积极思维方式
- 从使用Python开发一个Socket示例说到开发者的思维和习惯问题
- 独立思考者模型:避开思维误区的沼泽
- 编程思想——面向对象架构梦想
- 1.去京城的阻碍 。
- 他们的职业分别是什么?
- 浅谈局部思维的误区
- 为什么要学习英语?
- 12306:小宝到农民工的命
- 计算机思维or人的思维
- 4个小启示,给大脑洗洗澡!
- poj 3660 Cow Contest (Floyd+思维)