三升序列

目前只会暴力破解,网上答案很多,也不知道哪个对,我的答案是188245。
看了一圈好像180414是对的,但是我算不出来,代码检查了许多遍,不知道哪里出问题。

#include<stdio.h>
int main(void)
{//先把文件输入进来 char ch[30][51];//声明一个文件指针 FILE *fp; //调用fopen函数,返回值用声明的文件指针接收 fp=fopen("inc.txt","r");if(fp==NULL){printf("error");return -1;}//fscanf函数把文件中的数据输入到ch数组中 for(int i=0;i<30;i++){for(int j=0;j<51;j++){fscanf(fp,"%c",&ch[i][j]);}}//看一下接收数据后的数组 for(int i=0;i<30;i++){for(int j=0;j<51;j++){printf("%c",ch[i][j]);}}//关闭流。如果流成功关闭,则该方法返回零。如果失败,则返回 EOF。 fclose(fp);//i遍历行,j遍历列//u,v,w分别是三个字符所在位置的偏移量 int i,j,u,v,w,cnt=0;//查找所有横行里的三升序列 for(i=0;i<30;i++){for(u=0;u<48;u++){for(v=u+1;v<49;v++){if(ch[i][u]<ch[i][v]){for(w=v+1;w<50;w++){if(ch[i][v]<ch[i][w]){cnt++;}}}}}}printf("%d\n",cnt);//竖列for(j=0;j<50;j++){for(u=0;u<28;u++){for(v=u+1;v<29;v++){if(ch[u][j]<ch[v][j]){for(w=v+1;w<30;w++){if(ch[v][j]<ch[w][j]){cnt++;}}}}}}printf("%d\n",cnt);//左下到右上 for(j=49;j>0;j--){for(u=0;u<30&&j+u<50;u++){for(v=u+1;v<30&&j+v<50;v++){if(ch[29-u][j+u]<ch[29-v][j+v]){for(w=v+1;w<30&&j+w<50;w++){if(ch[29-v][j+v]<ch[29-w][j+w]){cnt++;}}}}}}printf("%d\n",cnt);for(i=29;i>-1;i--){for(u=0;i-u>-1;u++){for(v=u+1;i-v>-1;v++){if(ch[i-u][u]<ch[i-v][v]){for(w=v+1;i-w>-1;w++){if(ch[i-v][v]<ch[i-w][w]){cnt++;}}}}}} printf("%d\n",cnt);//右上到左下for(j=49;j>0;j--){for(u=0;u<30&&j+u<50;u++){for(v=u+1;v<30&&j+v<50;v++){if(ch[29-u][j+u]>ch[29-v][j+v]){for(w=v+1;w<30&&j+w<50;w++){if(ch[29-v][j+v]>ch[29-w][j+w]){cnt++;}}}}}}printf("%d\n",cnt);for(i=29;i>-1;i--){for(u=0;i-u>-1;u++){for(v=u+1;i-v>-1;v++){if(ch[i-u][u]>ch[i-v][v]){for(w=v+1;i-w>-1;w++){if(ch[i-v][v]>ch[i-w][w]){cnt++;}}}}}} printf("%d\n",cnt);//左上到右下for(j=1;j<50;j++){for(u=0;u<30&&j+u<50;u++){for(v=u+1;v<30&&j+v<50;v++){if(ch[u][j+u]<ch[v][j+v]){for(w=v+1;w<30&&j+w<50;w++){if(ch[v][j+v]<ch[w][j+w]){cnt++;}}}}}} printf("%d\n",cnt);for(i=29;i>-1;i--){for(u=0;u+i<30;u++){for(v=u+1;v+i<30;v++){if(ch[u+i][u]<ch[v+i][v]){for(w=v+1;w+i<30;w++){//纯粹是傻逼眼瞎了,这里的w=v+1;写成了w=0;无语至极,自赏耳光吧if(ch[v+i][v]<ch[w+i][w]){cnt++;}}}}}}printf("%d\n",cnt);printf("%d\n",cnt);//180414return 0;
}

用Java又做了一下,结果是对的180414,c版本出错的原因还没检查出来,先把Java代码贴上。

import java.io.File;
import java.io.FileNotFoundException;
import java.util.HashSet;
import java.util.Scanner;//三升序列
public class Sansheng {static int sum=0;static char[][] t;static HashSet<String> set;public static void main(String[] args) throws FileNotFoundException {set=new HashSet<>();t=new char[30][50];Scanner sc=new Scanner(new File("D:\\学习相关\\2020算法课\\算法练习\\inc.txt"));for(int i=0;i<t.length;i++) {t[i]=sc.next().toCharArray();}for(int i=0;i<t.length;i++) {for(int j=0;j<t[i].length;j++) {System.out.print(t[i][j]);}System.out.println();}count();System.out.println(set.size());System.out.println(sum);}public static void count() {int i,j,a,b,c;//横向for(i=0;i<t.length;i++) {for(a=0;a<t[i].length;a++) {for(b=a+1;b<t[i].length;b++) {if(t[i][a]<t[i][b]) {for(c=b+1;c<t[i].length;c++) {if(t[i][b]<t[i][c]) {set.add(t[i][a]+t[i][b]+t[i][c]+"");sum++;}}}}}}//竖向for(j=0;j<t[0].length;j++) {for(a=0;a<t.length;a++) {for(b=a+1;b<t.length;b++) {if(t[a][j]<t[b][j]) {for(c=b+1;c<t.length;c++) {if(t[b][j]<t[c][j]) {set.add(t[a][j]+t[b][j]+t[c][j]+"");sum++;}}}}}}//左下到右上for(i=0;i<t.length;i++) {for(a=0;i-a>-1;a++) {for(b=a+1;i-b>-1;b++) {if(t[i-a][a]<t[i-b][b]) {for(c=b+1;i-c>-1;c++) {if(t[i-b][b]<t[i-c][c]) {set.add(t[i-a][a]+t[i-b][b]+t[i-c][c]+"");sum++;}}}}}}for(j=1;j<t[0].length;j++) {for(a=0;a<t.length&&j+a<t[0].length;a++) {for(b=a+1;b<t.length&&j+b<t[0].length;b++) {if(t[t.length-a-1][j+a]<t[t.length-b-1][j+b]) {for(c=b+1;c<t.length&&j+c<t[0].length;c++) {if(t[t.length-b-1][j+b]<t[t.length-c-1][j+c]) {set.add(t[t.length-a-1][j+a]+t[t.length-b-1][j+b]+t[t.length-c-1][j+c]+"");sum++;}}}}}}//右上到左下for(i=0;i<t.length;i++) {for(a=0;i-a>-1;a++) {for(b=a+1;i-b>-1;b++) {if(t[i-a][a]>t[i-b][b]) {for(c=b+1;i-c>-1;c++) {if(t[i-b][b]>t[i-c][c]) {set.add(t[i-c][c]+t[i-b][b]+t[i-a][a]+"");sum++;}}}}}}for(j=1;j<t[0].length;j++) {for(a=0;a<t.length&&j+a<t[0].length;a++) {for(b=a+1;b<t.length&&j+b<t[0].length;b++) {if(t[t.length-a-1][j+a]>t[t.length-b-1][j+b]) {for(c=b+1;c<t.length&&j+c<t[0].length;c++) {if(t[t.length-b-1][j+b]>t[t.length-c-1][j+c]) {set.add(t[t.length-c-1][j+c]+t[t.length-b-1][j+b]+t[t.length-a-1][j+a]+"");sum++;}}}}}}//左上到右下for(i=t.length-1;i>-1;i--) {for(a=0;i+a<t.length;a++) {for(b=a+1;i+b<t.length;b++) {if(t[i+a][a]<t[i+b][b]) {for(c=b+1;i+c<t.length;c++) {if(t[i+b][b]<t[i+c][c]) {set.add(t[i+a][a]+t[i+b][b]+t[i+c][c]+"");sum++;}}}}}}for(j=1;j<t[0].length;j++) {for(a=0;a<t.length&&j+a<t[0].length;a++) {for(b=a+1;b<t.length&&j+b<t[0].length;b++) {if(t[a][j+a]<t[b][j+b]) {for(c=b+1;c<t.length&&j+c<t[0].length;c++) {if(t[b][j+b]<t[c][j+c]) {set.add(t[a][j+a]+t[b][j+b]+t[c][j+c]+"");sum++;}}}}}}}
}

c版本出错原因已经找到,无他,眼瞎而已。另外,代码已更新为正确版本。

三升序列20210314-20210413相关推荐

  1. 22.1.2是否存在三升序列

    给你一个整数数组 nums ,判断这个数组中是否存在长度为 3 的递增子序列. 如果存在这样的三元组下标 (i, j, k) 且满足 i < j < k ,使得 nums[i] < ...

  2. C/C++蓝桥杯三升序列

    本题答案可能是错的,我算出的是180414,和很多博主的答案不一样,我也不太懂哪里有问题,大家可以探讨一下 题目描述 对于一个字母矩阵,我们称矩阵中的一个三升序列是指在矩阵中找到三个字母,它们在同一行 ...

  3. [蓝桥杯]三升序列(Python实现)

    题目: 对于一个字母矩阵,我们称矩阵中的一个三升序列是指在矩阵中找到三个字母,它们在同一行,同一列,或者在同一 45 度的斜线上,这三个字母从左向右看.或者从上向下看是递增的. 例如,如下矩阵中 YQ ...

  4. 2019第十届蓝桥杯A组决赛(国赛)A题(三升序列)

    2019第十届蓝桥杯A组决赛(国赛)A题(三升序列) 输入: VLPWJVVNNZSWFGHSFRBCOIJTPYNEURPIGKQGPSXUGNELGRVZAG SDLLOVGRTWEYZKKXNK ...

  5. [蓝桥杯] 三升序列 python解法

    [问题描述] 对于一个字母矩阵,我们称矩阵中的一个三升序列是指在矩阵中找到三个字母,它们在同一行,同一列,或者在同一 45 度的斜线上,这三个字母从左向右看.或者从上向下看是递增的. 例如,如下矩阵中 ...

  6. 蓝桥杯第十届国赛C++研究生组 试题 A: 三升序列

    试题 A: 三升序列 [问题描述] 对于一个字母矩阵,我们称矩阵中的一个三升序列是指在矩阵中找到三个 字母,它们在同一行,同一列,或者在同一 45 度的斜线上,这三个字母从左向 右看.或者从上向下看是 ...

  7. 三升序列(蓝桥杯真题)——python

    题目如下: 对于一个字母矩阵,我们称矩阵中的一个三升序列是指在矩阵中找到三个字母,它们在同一行,同一列,或者在同一 45 度的斜线上,这三个字母从左向右看.或者从上向下看是递增的. 例如,如下矩阵中 ...

  8. 蓝桥杯每日一题(22):三升序列(python)

    Topic [问题描述] 对于一个字母矩阵,我们称矩阵中的一个三升序列是指在矩阵中找到三个字母,它们在同一行,同一列,或者在同一 45 度的斜线上,这三个字母从左向右看.或者从上向下看是递增的. 例如 ...

  9. 三升序列 和递增序列

    递增序列 对于一个字母矩阵,我们称矩阵中的一个递增序列是指在矩阵中找到两个 字母,它们在同一行,同一列,或者在同一 45 度的斜线上,这两个字母从左向 右看.或者从上向下看是递增的. 例如,如下矩阵中 ...

  10. 2019\National _C_C++_A\试题 A: 三升序列

    [问题描述] 对于一个字母矩阵,我们称矩阵中的一个三升序列是指在矩阵中找到三个字母,它们在同一行,同一列,或者在同一 45 度的斜线上,这三个字母从左向右看.或者从上向下看是递增的. 例如,如下矩阵中 ...

最新文章

  1. 15g1和g2和g3区别大吗_河南成人高考和普通高考的区别有哪些?成人高考难度会越来越大吗?...
  2. Linux下同步网络时间
  3. 【超100%解法】剑指 Offer 33. 二叉搜索树的后序遍历序列
  4. array_chunk_PHP array_chunk()函数与示例
  5. 《架构师》反思:系统可靠性
  6. acctype mysql assoc_dedeCMS数据库类的一些常见的使用方法
  7. servlet到底是什么?
  8. blender 3d打印_使用Blender创建用于打印的3D模型:高级技巧
  9. Tableau Desktop 10.4.2 的安装和激活
  10. grid lightbox gallery
  11. mac parallels desk 网络初始化失败
  12. 运行npm install时会一直加载转圈
  13. VS 2013的初配置
  14. 使用Python操控手机微信app(最新教程)
  15. 金融科技大数据产品推荐:易鑫大数据风控平台
  16. MongoDB 查询语法与常用查询语句总结
  17. 一款非常漂亮影视在线解析源码后台
  18. Windows10安装CentOS系统U盘和硬盘无法识别解决办法
  19. <<计算机视觉NeurIPS>>2022:GLIPv2: Unifying Localization and VL Understanding
  20. HDU 3594 Cactus(有向仙人掌图判断)

热门文章

  1. 网易邮箱阻止一次非法访问解除方法
  2. MySQL中的极限值
  3. 电音(2)8-bit
  4. 阿里代码规约:手动创建线程池,效果会更好哦
  5. java基于微信小程序的驾校报名预约考试 uniapp小程序
  6. 手机铃声和图片的详细设计说明
  7. 计算机考研失败了还能找工作吗,考研失败了怎么办_考研失败还能找工作吗
  8. 【web-ctf】ctf_BUUCTF_web(2)
  9. 京东首页静态页面html+css
  10. PCB布局和绘制的关键操作