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 ...
随机推荐
- ASP.NET实现图片防盗链(转)
使用httpHandle来实现,对图片文件的请求做专门的处理第一步:创建一个类,继承自IHttpHandler,代码如下 C# code using System; using System.Web; ...
- C#中操作刚导出的Excel,设置其为自动调整列宽
[问题] 用C#导出数据为excel,但是导出的数据中,不是自动调整列宽的: 希望变成这样的: [解决过程] 1.参考: 在C#里对excel文件的列宽进行操作 去试试: //auto adjust ...
- 如何写一个数据库How do you build a database?(转载)
转载自:http://www.reddit.com/r/Database/comments/27u6dy/how_do_you_build_a_database/ciggal8 Its a great ...
- jsp include 乱码问题的解决
jsp include 乱码问题的解决 博客分类: Java JSPWeb浏览器IESpring jsp include 乱码问题的解决 jsp include 的文件有时候会出现乱码,经过测试发现 ...
- linux中BASH_SOURCE[0]
在C/C++中,__FUNCTION__常量记录当前函数的名称.有时候,在日志输出的时候包含这些信息是非常有用的.而在Bash中,同样有这样一个常量FUNCNAME,但是有一点区别是,它是一个数组而非 ...
- jquery学习之笔记一
jquery是继prototype后一个很好用的javascript库.jquery是一个轻量级的库,拥有强大的选择器,出色的DOM操作,可靠的事件处理,完善的兼容性和链式操作等功能. window. ...
- qq电脑管家抽奖页面源代码
桌面qq电脑管家中个人中心的抽奖页面竟然是HTML写的,光大我HTML.!!! <!DOCTYPE html> <html> <head lang="en&qu ...
- listvew加载更多
http://bbs.51cto.com/thread-968277-1.html 又是新的一周的开始,上午自己写了上拉加载更多数据的demo,嘿嘿这里和大家分享. android开发中,list ...
- NFC协议学习分享
很多同学在学习NFC协议的时候,觉得NFC的规范从底层到上层的应有尽有,有点无处下手的感觉.这里就和大家分享下我曾经学习NFC规范的经验.如果有不对的地方,也请各位同学批评指正.NFC Forum中有 ...
- 一个AVRUSB作品HID类
最近为了HID类设备弄了半个把月.终于完成这个无线(红外)多媒体键盘,带鼠标功能.难就难在描述符上,不过在近4天的资料翻阅及多次的测试下,电脑不知道重启了多少次啊,的情况下 搞定了这个东西,大家可以看 ...