zoukankan      html  css  js  c++  java
  • 洛谷P1014 Cantor表

    一枚蒟蒻的第一篇题解(我竟然一遍过)【本题于2019.10.13 AC】

    话不多说直接切入正题

    首先列出一个表来找规律:

    1/1 …… 1/2 …… 1/3 …… 1/4 …… 1/5 …… 1/6

    2/1 …… 2/2 …… 2/3 …… 2/4 …… 2/5

    3/1 …… 3/2 …… 3/3 …… 3/4

    4/1 …… 4/2 …… 4/3

    5/1 …… 5/2

    6/1

    把头向左倾斜45度就差不多能看出来(真像个z子形


    然后找到了规律,这里就不说了,就是和蛇一样

    这题给的数不大不小正好不会TLE,直接暴力;

    横着为x,纵着为y,即这些数可以表示为x/y;

    这就好办了


    用两个变量分别储存x,y

    然后进行一系列的操作:当x=1时y+1;y=1时x+1;

    若是都没有,则看情况向右上或左下变换x,y;

    好的,下面就是本题代码了!为防止抄袭,改了几个地方,嘿嘿

     1 #include<iostream>
     2 #incldue<cstdlib>
     3 #include<cstdio>
     4 using namespace std;
     5 int mian()
     6 {
     7 
     8     int n,p=0,x=1,y=1,z1=x,z2=y;
     9     cin>>n;
    10     for(int i=0;i<n-1;i++)
    11     {
    12         if(y==1&&z1=x)
    13         {
    14             x++;
    15             z2=x;
    16             p=1;
    17         }
    18         else
    19         {
    20             if(x==1&&z2==y)
    21             {
    22                 y++;23                 z1=y;
    24                 p=0;25             }
    26             else
    27             {
    28                 if(p==1)//当p==1时,向右下
    29                 {
    30                     x--;
    31                     y++;
    32                 }
    33                 else//否则向右上
    34                 {
    35                     x++;
    36                     y--;
    37                 }
    38             }
    39         }
    40     }
    41     cout<<y<<"/"<<x;//输出y/x
    42  return 0;
    43 }

    -------------------------------------------

    个性签名:学习使我快乐

    如果觉得这篇文章对你有小小的帮助的话,记得在右下角点个“推荐”哦,博主在此感谢!

    博主最近五行缺钱,请求精准扶贫

    赞助! 赞助! 赞助!

  • 相关阅读:
    7
    6
    Robot Motion -- 机器人路径规划
    Delaunay Triangulation
    Voronoi Diagram -- 泰森多边形 (维诺图)
    Window query -- 区间线段包含问题
    5
    es6模块化
    js模块化编程之彻底弄懂CommonJS和AMD/CMD!
    混合开发菜鸟级别总结笔记 内容来自百度一下,你就知道
  • 原文地址:https://www.cnblogs.com/laoguantongxiegogo/p/12270851.html
Copyright © 2011-2022 走看看