zoj1025 Wooden Sticks
DAG转移,从切题的数量来看是一道水题,给你n个棒,大的可以延续小的,问最少上升子序列的个数。
其实这道题是用贪心来写的,因为这是个有向无环图,到达分叉口,每一条路都要便历,所以每条路应该一样对待,有两维限制,可以先对其中一维进行排序,然后根据第二维的情况进行处理。
for循环:
#include<cstdio>
#include<algorithm>
#include<cmath>
#include<iostream>
#include<cstring>
using namespace std;
int n;
struct node
{
int u,v;
}big[];
bool vis[];
bool cmp(node a,node b)
{
if(a.u<b.u)
return ;
else if(a.u==b.u&&a.v<b.v)
return ;
return ;
}
int main()
{
//freopen("input.txt","r",stdin);
int cas;
cin>>cas;
while(cas--)
{
cin>>n;
for(int i=;i<n;i++)
{
cin>>big[i].u>>big[i].v;
}
sort(big,big+n,cmp);
int ans=;
int t=;
memset(vis,,sizeof(vis));
for(int i=;i<n;i++)
{
if(vis[i])
continue;
vis[i]=;
t=big[i].v;
ans++;
for(int j=i+;j<n;j++)
{
if(big[j].v>=t&&vis[j]==)
{
t=big[j].v;
vis[j]=;
}
}
}
printf("%d\n",ans);
}
}
记忆化dfs贪心:
#include<cstdio>
#include<algorithm>
#include<cmath>
#include<iostream>
#include<cstring>
using namespace std;
int n;
struct node
{
int u,v;
}big[];
bool vis[];
bool cmp(node a,node b)
{
if(a.u<b.u)
return ;
else if(a.u==b.u&&a.v<b.v)
return ;
return ;
}
void dfs(int x)
{
if(vis[x])
return;
vis[x]=;
for(int j=x+;j<n;j++)
{
if(vis[j]==&&big[j].v>=big[x].v)
{
dfs(j);
break;//记忆化贪心的时候要加上break;
}
}
} int main()
{
//freopen("input.txt","r",stdin);
int cas;
cin>>cas;
while(cas--)
{
cin>>n;
for(int i=;i<n;i++)
{
cin>>big[i].u>>big[i].v;
}
sort(big,big+n,cmp);
int ans=;
memset(vis,,sizeof(vis));
for(int i=;i<n;i++)
{
if(!vis[i])
{
dfs(i);
ans++;
}
}
printf("%d\n",ans);
}
}
zoj1025 Wooden Sticks的更多相关文章
- HDOJ 1051. Wooden Sticks 贪心 结构体排序
Wooden Sticks Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) To ...
- POJ 1065 Wooden Sticks
Wooden Sticks Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 16262 Accepted: 6748 Descri ...
- HDU ACM 1051/ POJ 1065 Wooden Sticks
Wooden Sticks Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Tot ...
- 1051 Wooden Sticks
Wooden Sticks Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Tot ...
- Wooden Sticks
Wooden Sticks Time Limit : 2000/1000ms (Java/Other) Memory Limit : 65536/32768K (Java/Other) Total ...
- C - Wooden Sticks
C - Wooden Sticks Time Limit:1000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64u S ...
- HDU 1051 Wooden Sticks (贪心)
Wooden Sticks Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) To ...
- uvalive 2322 Wooden Sticks(贪心)
题目连接:2322 Wooden Sticks 题目大意:给出要求切的n个小木棍 , 每个小木棍有长度和重量,因为当要切的长度和重量分别大于前面一个的长度和重量的时候可以不用调整大木棍直接切割, 否则 ...
- Wooden Sticks(杭州电1051)
Wooden Sticks Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) To ...
随机推荐
- Python 初学
一. 前言 不怕各位园友笑话,今年年初时,我才知道有一个叫python的编程语言,听说它很大强大,而我只会用c#,正想好好再学一门新语言,还有人分享自己的经验时说,使用python制作的脚本,再做持续 ...
- eclipse项目提交到git
http://www.open-open.com/lib/view/open1406105786710.html 1.在https://github.com new repository 2.在e ...
- 天坑 之 JSP编译错误
情况:今天写自己的小网站,使用jsp+servlet+mysql,bean,dbutil,DAO等都已经写完,mySQL也已经创建好数据库,表,和字段,添加完成数据,启动tomcat,结果出现下图错误 ...
- golang illegal base64 data at input byte
//one reason is whitespace ciphertext = strings.Replace(ciphertext, " ", "", -1) ...
- [ofbiz]entitymode中类型的对照关系
在实体数据结构的时候,习惯于数据库的设计模式,int,varchar等各种类型,但是在entitymode中不是直接使用数据库的类型模式,而是自己定义了一套数据类型(type). 如何找到两者之间的对 ...
- java中静态代码块的用法 static用法详解
(一)java 静态代码块 静态方法区别一般情况下,如果有些代码必须在项目启动的时候就执行的时候,需要使用静态代码块,这种代码是主动执行的;需要在项目启动的时候就初始化,在不创建对象的情况下,其他程序 ...
- 图片异步加载 ,KVO
图片异步下载类目: .h #import <UIKit/UIKit.h> typedef void (^ImageBlock)(UIImage *img); @interface UIIm ...
- undefined reference to `_sbrk', `_write', `_lseek', `_read'
现象: 在用GCC编译嵌入式MCU程序时,由于使用了第三方的库,出现了类似undefined reference to `_sbrk', `_write', `_lseek', `_read'的连接错 ...
- Nginx 变量漫谈(八)
与 $arg_XXX 类似,我们在 (二) 中提到过的内建变量 $cookie_XXX 变量也会在名为 XXX 的 cookie 不存在时返回特殊值“没找到”: location /test ...
- ImageView图片不显示---------记glide框架使用时遇到的问题
最近在开发项目的时候,使用了谷歌推荐的glide框架,却发现了一个莫名奇妙的问题,就是imageview始终不显示图片! 发现图片不显示 但是改为安卓本身自带的ic_launch可以显示ic_laun ...