![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
2020年西北工业大学“编程之星”序设计挑战赛
题解
碎花惊羽
懒,但是喜欢计算机的东西,想学在学,没有动力学
展开
-
2020年西北工业大学 I- ACM基地招新大会
题目在这里:题目这道题我半懂不懂,感觉主流就两种理解:一种是ST表维护,一种是使用栈来维护(大佬给我讲了很久的这道题ST原理我还是不会做这道题,所以选择放弃),甚至还有人用vector来做,主要思路就是找到数据中最大的数字,然后单方向进行寻找,直接上代码吧,我解释不清(现在还是一脸蒙):#include <cstdio>#include <stack>using namespace std;const int maxn = 100005;int a[maxn], n,原创 2021-01-16 20:01:52 · 625 阅读 · 0 评论 -
2020年西北工业大学 J- 不讲武德
题目在这里:题目这道题真就和题目一样不讲武德,看一下这个排序算法#define N 100009int tmp[N];void change(int arr[], int begin, int end){ if (begin >= end) return; int mid = (begin + end) / 2, size = 0; for (int i = mid + 1; i <= end; ++i) tmp[++size]原创 2021-01-16 19:48:45 · 209 阅读 · 0 评论 -
2020年西北工业大学 H-松果痰抖闪电鞭
题目在这里:题目这道其实就是一道比较简单的找规律题,利用x1和x2推出去,发现推到x5和x6的时候x5=x1,x6=x2,没错又回到原点,这就是一个循环,所以我们只需要推出去5个数字即可(具体我就不推了,自己推一下即可),写的时候只需要注意下输出的是8位小数即可,代码如下:#include<stdio.h>int main(){ double a,b,c[6]; int k,i; scanf("%lf%lf%d",&a,&b,&k);原创 2021-01-16 19:42:35 · 271 阅读 · 0 评论 -
2020年西北工业大学 F-反复读密码锁
题目在这里:题目这道题开始想了一种直接硬做的方式,不过发现有数据量过大会超过数据和string的范围,所以只能选择找规律。首先,先写一段:01101001100101101001011001101001…根据题目描述可以找到一个4个数字的循环,将这两种四个数字的组合再整合程一个新的符号组合即出现ABBABAAB,没错又是四个符号一循环的规律,那就是规律:一个二进制的递推式,那么我们只需要按照数字推回去即可对于任何一个n来说这个规律都是成立的,所核心代码比较简单的,不过这里需要用到一个函数high_原创 2021-01-16 19:36:36 · 242 阅读 · 1 评论 -
2020年西北工业大学 D-玩具
题目在这里:题目这道题读来感觉很难,也确实有一种相对应的的正解(我觉得是权值线段树,可惜我不会),在仔细读题发现这道题的真正意思其实就是把整个数组当做一个区间,里面的区间就是他的子区间,在一定程度上可以认为母区间的出现次数最多的数,在一些子区间里也是出现次数最多的数(也就是我们常数的一列数字的众数),所以代码实现就挺简单了,对数据做一些简单的处理即可:#include <stdio.h>int a[100010],c[100010];int main(){ int n,max = 0原创 2021-01-16 19:21:16 · 67 阅读 · 0 评论