sking
#include #include #include typedef struct SKI{ int data; int x; int y; char flag; int len; }STSKI; int compare(const void * i1, const void *i2){ STSKI *a = (STSKI *)i1; STSKI *b = (STSKI *)i2; return (b->data - a->data); } int judgeXY(int X, int Y, int x, int y){ if(x-1 < 0 || x+1 >= X || y-1 < 0 || y+1 > Y) return 0; return 1; } int dfs(int arr[], int size, int x, int y, int len); int main(){ int R, C; int i=0; int j=0; // int arr[]={4,1,3,8,0,2}; // qsort(arr, sizeof(arr)/sizeof(arr[0]), sizeof(arr[0]), compare); // for (int var = 0; var < sizeof(arr)/sizeof(arr[0]); ++var) { // printf("%d ", arr[var]); // } STSKI ski[10000]; memset(&ski, 0x00, sizeof(ski)); //int path[10000]={0}; int X=0; int Y=0; int indexXY=0; scanf("%d%d", &R, &C); for (i = 0; i < R; ++i) { for (j = 0; j < C; ++j) { int a,b; scanf("%d", &a); ski[indexXY].x = i; ski[indexXY].y = j; ski[indexXY].data = a; ski[indexXY].flag = '0'; ski[indexXY].len = 0; ++indexXY; } } // for (i = 0; i < R; ++i) { // for (j = 0; j < C; ++j) { // printf("%d ", ski[i*C+j].data); // } // printf("\n"); // } qsort(ski, R*C, sizeof(ski[0]), compare); // for (i = 0; i < R; ++i) { // for (j = 0; j < C; ++j) { // printf("data:%d x:%d y:%d ", ski[i*C+j].data, ski[i*C+j].x, ski[i*C+j].y); // } // printf("\n"); // } // for (i = 0; i < R; ++i) { // for (j = 0; j < C; ++j) { // printf("data:%d ", ski[i*C+j].data); // } // printf("\n"); // } for(i=0; i<R*C; i++){ ski[i].flag = '1'; if (ski[i].x-1 < 0) { continue; } else if(ski[i].x+1 > R){ continue; }else if (ski[i].y-1 < 0) { continue; }else if (ski[i].y+1 > C) { continue; }else { } // int ret=0; // ret = judgeXY(R, C, ski[i].x, ski[i].y); // x,y:out of range? } return 0; } int dfs(int arr[][], int X, int Y, int x, int y, int len){ return 0; }
// C v0.01 wa
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int dfs(int cur, int x, int y, int X, int Y);
int arr[101][101];
int dep[101][101];
int main(){
int m;
int R, C;
int i=0;
int j=0;
int tmp_MAX=0;
scanf("%d", &m);
getchar();
while(m--){
scanf("%d%d", &R, &C);
getchar();
memset(&arr, 0x00, sizeof(arr));
for (i = 0; i < R; ++i) {
for (j = 0; j < C; ++j) {
scanf("%d", &arr[i][j]);
dep[i][j] = 0;
}
}
for (i = 0; i < R; ++i) {
for (j = 0; j < C; ++j) {
int tmp=0;
if(dep[i][j] == 0){
tmp = dfs(arr[i][j],i, j, R, C);
}else {
tmp = dep[i][j];
}
if(tmp_MAX < tmp){
tmp_MAX = tmp;
}
}
//printf("\n");
}
printf("%d\n", tmp_MAX+1);
}
return 0;
}
int dfs(int cur,int x, int y, int X, int Y){
//dep[x][y]=0,indicates that it hasn't gone through dep(x,y)
if(dep[x][y] == 0){
int max=0;
//before
if(x-1>=0 && cur > arr[x-1][y]){
int tmp = dfs(arr[x-1][y],x-1,y,X,Y);
if(max < tmp+1) max = tmp+1;
}
//after
if(x+1<X && cur > arr[x+1][y]){
int tmp = dfs(arr[x+1][y],x+1,y,X,Y);
if(max < tmp+1) max = tmp+1;
}
//left
if(y-1>=0 && cur > arr[x][y-1]){
int tmp = dfs(arr[x][y-1],x,y-1,X,Y);
if(max < tmp+1) max = tmp+1;
}
//right
if(y+1<Y && cur > arr[x][y+1]){
int tmp = dfs(arr[x][y+1],x,y+1,X,Y);
if(max < tmp+1) max = tmp+1;
}
dep[x][y] = max;
return max;
}else {
return dep[x][y];
}
}
sking的更多相关文章
- 经典DOS游戏皇帝攻略(曾经的回忆)
最完美攻略>>>>> -------------------------------------------------------------------------- ...
- ADF_Starting系列5_使用ADF开发富Web应用程序之维护User Interface(Part2)
2014-05-05 Created By BaoXinjian
- [转]Easy Stored Procedure Output Oracle Select
本文转自:http://www.oraclealchemist.com/oracle/easy-stored-procedure-output/ I answered a question on a ...
- 精通 Oracle+Python,第 7 部分:面向服务的 Python 架构
面向服务的架构 (SOA) 在当今的业务战略中具有至关重要的作用.混搭企业组件已成为所有任务关键的企业应用程序的标准要求,从而确保在企业架构的各层实现顺畅的服务编排.对此,Python 是一个不错的选 ...
- Java日志管理
首页 资讯 精华 论坛 问答 博客 专栏 群组 更多 ▼ 您还未登录 ! 登录 注册 JavaCrazyer的ItEye(codewu.com)技术博客 博客 微博 相册 收藏 留言 关于我 ...
- java总结
JUC概况 以下是Java JUC包的主体结构: ? Atomic : AtomicInteger ? Locks : Lock, Condition, ReadWriteLock ? Collect ...
- 《深入了解mybatis原则》 MyBatis架构设计和案例研究
MyBatis这是现在很流行ORM框架,这是非常强大.事实上现却比較简单.优雅. 本文主要讲述MyBatis的架构设计思路,而且讨论MyBatis的几个核心部件.然后结合一个select查询实例.深入 ...
- ocp11g培训内部教材_051课堂笔记(047)_SQL
OCP 051课堂笔记 目录 OCP 051课堂笔记... 1 第一章.Oracle命令类别:... 4 第二章.SQL的基本函数... 4 2.1 单行函数与多行函数... 4 2.2 单行函数的几 ...
- 《深入理解mybatis原理》 MyBatis的架构设计以及实例分析
作者博客:http://blog.csdn.net/u010349169/article/category/2309433 MyBatis是目前非常流行的ORM框架,它的功能很强大,然而其实现却比较简 ...
随机推荐
- SQL面试整理(1)——数据库连接池
在web开发中,如果JSP.Servlet或EJB使用JDBC直接访问数据库,每一次数据访问请求都必须经历建立数据库连接,打开数据库,存取数据库和关闭数据库连接等操作步骤,如果频繁发生这种数据库操作, ...
- linux下的tar命令详解
通过SSH访问服务器,难免会要用到压缩,解压缩,打包,解包等,这时候tar命令就是是必不可少的一个功能强大的工具.linux中最流行的tar是麻雀虽小,五脏俱全,功能强大. tar命令可以为linux ...
- 基于.NET Standard的分布式自增ID算法--美团点评LeafSegment
概述 前一篇文章讲述了最流行的分布式ID生成算法snowflake,本篇文章根据美团点评分布式ID生成系统文章,介绍另一种相对更容易理解和编写的分布式ID生成方式. 实现原理 Leaf这个名字是来自德 ...
- vue基础项目安装教程
安装node.js 从node.js官网下载并安装node,安装过程很简单,一路“下一步”就可以了. 安装完成之后,打开命令行工具,输入 node -v,如下图,如果出现相应的版本号,则说明安装成功. ...
- OD之去除nag弹窗(四)
在某些方面,一个软件如果没有注册的话,老是会弹出烦人的注册弹窗,就如下图一样: 出现了两次弹窗,开始一次,关闭后又一次,老办法,拖进OD进行分析;不过看出程序很简单,就出现了messagebox的调用 ...
- Catlike学习笔记(1.4)-使用Unity构建分形
又两个星期没写文章了,主要是沉迷 Screeps 这个游戏,真的是太好玩了导致我这两个礼拜 Github 小绿点几乎天天刷.其实想开一个新坑大概把自己写 AI 的心路历程记录下,不过觉得因为要消耗太多 ...
- 互联网寒冬,Python 程序员如何准备面试
虽说年年都在喊互联网寒冬,最难就业季,但是今年确实有点不一样,年前年后一波又一波互联网公司宣布『人员调整,结构优化』, 这是往年没发生过的. 是不是面试机会就少了很多呢?不是的. 搜索招聘网站我们可以 ...
- PAT甲题题解-1075. PAT Judge (25)-排序
相当于是模拟OJ评测,这里注意最后输出:1.那些所有提交结果都是-1的(即均未通过编译器的),或者从没有一次提交过的用户,不需要输出.2.提交结果为-1的题目,最后输出分数是03.某个题目从没有提交过 ...
- Python网络数据采集
一.正则表达式 * 表匹配0次或者多次 a*b* + 表至少一次 [ ] 匹配任意一个 ( ) 辨识一个编组 {m,n} m或者n 次 [^] 匹配任意不在中括号里的字符 | ...
- 第二次spring冲刺第2天
今天我们开了个小会,关于讨论开始页面的设计及数据输入的格式限制.运算功能等改善