您当前的位置: 首页 > 

MangataTS

暂无认证

  • 0浏览

    0关注

    423博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

SWPUACM第二届程序设计竞赛

MangataTS 发布时间:2022-02-07 15:20:28 ,浏览量:0

文章目录
  • 题目说明:
  • A.善良的杨宇
    • 解题思路
    • code
  • B.芜湖!加速!
    • 解题思路
    • Code
  • C.情人节的倍数
    • 解题思路
    • Code
  • D.像素游戏
    • 解题思路
    • Code
  • E.孤独的数字(easy)
    • 解题思路:
  • F.孤独的数字(hard)
    • 解题思路
    • Code
  • G.彩虹屁
    • 解题思路
    • Code
  • H.无相连通图
    • 解题思路
    • Code
  • I.呐!你的签到题
    • 解题思路
    • Code
  • J.一键三连
    • 解题思路
    • Code
  • K.简单的脑筋急转弯
    • 解题思路
    • Code
  • L.他在第几层?
    • 解题思路
    • Code

题目说明:

E、F、G、I是我出的 B、C、H、J是rhr出的 A、B、K、L是yy出的

A.善良的杨宇 解题思路

差分,然后找连续的值大于0的最长可能,具体看代码

code
#include 
using namespace std;
const int N = 100005;

int a[N];

int main()
{
    int n;
    scanf("%d",&n);
    for(int i = 1;i = 1; --i)
        a[i] -= a[i-1];
    int loc = 0;
    int ans = 0;
    for(int i = 1;i  0) {
            loc++;
        }
        else {
            ans = max(ans,loc);
            loc = 1;
        }
    }
    ans = max(ans,loc);
    printf("%d\n",ans);
    return 0;
}
B.芜湖!加速! 解题思路

因为普通搜索时,我们有时可能会用到之前所搜索到的结果,这时如果我们再次搜索就显得没有必要了(会浪费很多时间呢),所以如果我们已经记录了之前搜索的答案不就可以直接用之前的搜索答案了么

Code
#include
#include
#include
#include
using namespace std;
const int maxn = 500;//数据并不大
const int dx[]= {0,0,1,-1};
const int dy[]= {1,-1,0,0};
int r,c,ans;
int map[maxn][maxn],step[maxn][maxn];
int dfs(int x,int y) {
    if(step[x][y]) return step[x][y];//一开始每个点的步数都应为0;如果当前这个点已知其最大步数说明之前该点已被计算过就不用再重复计算了(这不是废话么- -||);
    step[x][y]=1;//既然这是一个从未走过的点那么现在来到该点至少都会使其步数为1
    for(int i=0; i            
关注
打赏
1665836431
查看更多评论
0.0507s