vijos p1103校门外的树 和 P1165火烧赤壁
来源:互联网 发布:ug制图软件 编辑:程序博客网 时间:2024/04/27 00:55
p1103校门外的树,模拟出每一棵树,每段给定的长度就代表移走数就可以了。
#include<iostream>using namespace std;const int N=10005;int a[N]; int main(){ int m,l,i,head,tail,ans=0; cin>>l>>m; for(i=0;i<=l;i++)a[i]=1; for(i=0;i<m;i++) { cin>>head>>tail; for(;head<=tail;head++) a[head]=0; } for(i=0;i<=l;i++) if(a[i]==1)ans++; cout<<ans; return 0;}P1165火烧赤壁,由于数据给的间隔非常之大,无法开出那么大的数组,所以就没法像P1103那样做。不同的线段组按左端从左向右排序,然后相邻的线段之间去重就可以了。之后统计right-left之和就是答案。
#include <cstdio>#include <algorithm>using namespace std;struct node{long left,right;}chuan[20000];bool operator<(const node &x,const node &y){return x.left<y.left;} int main(){ long i,n; scanf("%ld",&n); for(i=0;i<n;i++) scanf("%ld %ld",&chuan[i].left,&chuan[i].right); sort(chuan,chuan+n); for(i=0;i<n-1;i++){if(chuan[i].right>=chuan[i+1].left){if(chuan[i].right>chuan[i+1].right)chuan[i+1].right=chuan[i].right;chuan[i].right=chuan[i+1].left;}}long ans=0;for(i=0;i<n;i++)ans+=chuan[i].right-chuan[i].left; printf("%ld", ans); return 0;}
- vijos p1103校门外的树 和 P1165火烧赤壁
- Vijos P1103 校门外的树
- vijos P1103校门外的树
- vijos p1103 校门外的树
- P1103校门外的树
- P1103 校门外的树
- 火烧赤壁 洛谷 vijos
- 火烧赤壁(vijos某次模拟赛题目noip2004校门口外的树加强版)略高于noip普及组难度
- 火烧赤壁的故事
- vijos 1165_火烧赤壁_离散
- vijos 1448 校门外的树
- Vijos 1448校门外的树(线段树)
- [vijos 1448]: 校门外的树(树状数组/线段树)
- Vijos 1448 校门外的树 树状数组
- 洛谷p1496火烧赤壁
- nbut 1058 火烧赤壁 2
- NOJ[1508] 火烧赤壁2
- 2774 火烧赤壁(排序贪心)
- 设计模式—合成/聚合复用原则
- java hashCode()方法equals()和==
- gcd迭代实现
- 程序人生的四个象限和两条主线
- s3c2440的MMU裸机程序
- vijos p1103校门外的树 和 P1165火烧赤壁
- Hadoop权威指南NCDC数据下载
- 易语言-API点击鼠标
- Keyboard01
- java学习之路----递归
- 胆大!细心!脸皮厚!
- 递归算法——妙
- JAVA笔记【20131209】
- Centos破解root密码