HDOJ 2614 Beat
2016-04-05 16:12
323 查看
简单的DFS水题,,这道题讲述的是一个孩子要做n个题目,每个题目难度不同,这个孩子有一个脾气,就是做的题目不会做比之前做的简单的。
题目中的Tij就是第i行第j列代表着,做完i号题目后做j题目所花费的时间,如果做i题目花费了2分钟,做完i后做j花费时间小于2分钟则,这个有脾气的小屁孩不会去鸟这道题,他只做花费时间大于等于2分钟的题目。
很有原则的小孩儿啊。
DFS(上一个题,上一个题的时间,总的解决数目)
然后DFS下一个题,标记使用过了的和大于上一个题的时间,
记录下最大的解决数目,简单题,我错了三次,原因在于第一个题没有标记,我智障一般;
Sample Input
Sample Output
题目中的Tij就是第i行第j列代表着,做完i号题目后做j题目所花费的时间,如果做i题目花费了2分钟,做完i后做j花费时间小于2分钟则,这个有脾气的小屁孩不会去鸟这道题,他只做花费时间大于等于2分钟的题目。
很有原则的小孩儿啊。
DFS(上一个题,上一个题的时间,总的解决数目)
然后DFS下一个题,标记使用过了的和大于上一个题的时间,
记录下最大的解决数目,简单题,我错了三次,原因在于第一个题没有标记,我智障一般;
Sample Input
3 0 0 0 1 0 1 1 0 0 3 0 2 2 1 0 1 1 1 0 5 0 1 2 3 1 0 0 2 3 1 0 0 0 3 1 0 0 0 0 2 0 0 0 0 0
Sample Output
3 2 4
#include<stdio.h> #include<string.h> int use[30]; int n,map[30][30],max; void DFS(int first,int time,int slo) { for(int i=0;i<n;i++) { if(!use[i]&&map[first][i]>=time) { use[i]=1; DFS(i,map[first][i],slo+1); use[i]=0; } } if(slo>max) { max=slo; } } int main() { int i,j,k; while(scanf("%d",&n)!=EOF) { memset(use,0,sizeof(use)); max=0; for(i=0;i<n;i++) { for(j=0;j<n;j++) { scanf("%d",&map[i][j]); } } use[0]=1; DFS(0,0,1); printf("%d\n",max); } return 0; }
相关文章推荐
- 关于EventBus用法总结
- 机器学习 Numpy Scipy Matplotlib Scikit-Learn的安装
- FragmentViewPager简单理解
- 【Chromium中文文档】Profile架构(看看谷歌家的重构)
- 浏览器环境下Javascript脚本加载与执行探析之DOMContentLoaded
- 【前端】使用CSS使元素居中的几种方式
- 本地Spring容器关闭的时机
- 快速gcd vs 普通gcd
- Redis命令-有序集合-zadd
- redis
- Peter and Snow Blower
- 宏和函数的区别
- spring框架学习(四)自动装配
- spring框架学习(三)junit单元测试
- vipca报错 CRS-1006,CRS-0215
- maven pom.xml各地址来源
- 【hihoCoder 1036】Trie图
- inline模式_大小写
- python import eventlet包时提示ImportError: cannot import name eventlet
- 游戏开发了解测试工作(4)