![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
小米OJ
ccczxacxzxcz
Be low.
展开
-
小米OJ #15 和为零的三元组
#include <bits/stdc++.h>using namespace std;int main(){ char line[1000001]; while (cin.getline(line, 1000000)) { int temp = 0, num = 0; int preI = -INT_MAX, preJ...原创 2019-02-27 20:01:26 · 199 阅读 · 0 评论 -
小米OJ #136 小米兔的轨迹
题目转化成顺时针打印矩阵将打印步骤分为每一圈:易推得知 2beg < rows && 2beg < cols时,可以进行下一圈且每一圈的起点坐标一定是(x+1,y+1)同时将每一圈分为四步:左到右上到下右到左下到上同时对每一步步骤进行边界判断#include <bits/stdc++.h>using namespace std;voi...原创 2019-03-07 20:10:24 · 192 阅读 · 0 评论 -
小米OJ #6 交叉队列
将题目可以转换成寻找一条路径。走过s1或s2时,不能跳过或回头,只能沿着当前字符串前进或者跳到另一个字符串上一次走到的位置。利用dp[i][j]记录路径,i表示走到s1的当前位置,j表示走到s2的当前位置,dp[i][j]表示当前路径是否等于与s3截止到 i+j 的相等。#include <bits/stdc++.h>using namespace std;void ipize...原创 2019-03-06 20:46:41 · 264 阅读 · 0 评论 -
小米OJ #27石头收藏家
非常典型的一道01背包问题,太久没做,写出代码+找BUG花了一个多小时 : )注意边界 注意边界。还有小米OJ系统的评判,提交一直显示超时,遂去查看别人的提交,发现超时的提交都是有用到 getchar 或者 !=EOF。。莫名超时,花了好多时间结果问题出在这里,很痛苦。#include <stdio.h>#include <stdlib.h>#include ...原创 2019-03-03 19:55:17 · 237 阅读 · 0 评论 -
小米OJ #24 海盗分赃
总和奇数肯定false.如果数字的某种组合能够等于 总和/2 ,则true利用Bitset保存情况#include <bits/stdc++.h>using namespace std;bitset<50005> flag;int val;char s;int nums[101];int len;int sum = 0;int main(){...原创 2019-03-05 23:55:01 · 315 阅读 · 0 评论 -
小米OJ 14# 在一个有序的经过旋转的数组里查找一个数 的提交
旋转过后的字符串,将其一分为二时,总有一半是排好序的,因此可以用二叉搜索~循环判别哪一半是排过序的:1.如果目标数字在排过序的那一半,则使用二叉搜索2.如果在另一半,那么再将另一半分为两块判断哪一块是排过序的3.重复1 2#include <bits/stdc++.h>using namespace std;int fun(vector<int> vec,...原创 2019-02-26 21:01:32 · 199 阅读 · 0 评论 -
小米OJ #18 帮小学生排队
原题还蛮有意思的一道题,先要理解题目给的输入:h和k是一对一对给的,因此对每位小朋友位置进行变动的时候,h,k应是一起变动。(一开始理解成了h,k混着给,想了半天没想出思路)用两个数组同步保存h,k,再利用第三个数组保存h,k的索引。首先进行一次排序:h值大的在前;h值相同的,则k值更小的在前。随后可以发现,每对hk的正确位置应该是插入到 距离其当前位置向前(pos-k)个长度的位置。利...原创 2019-03-02 22:18:00 · 580 阅读 · 0 评论 -
[小米OJ] 2. 找出单独出现的数字
[小米OJ] 2. 找出单独出现的数字解法一:map 1.45 ms#include <algorithm>#include <bitset>#include <cmath>#include <cstdio>#include <cstdlib>#include <cstring>#include ...原创 2018-11-24 19:38:00 · 346 阅读 · 0 评论 -
[小米OJ] 3. 大数相减
[小米OJ] 3. 大数相减题目链接思路:利用两个string保存相减的数,其他模拟即可。参考了别人的一个处理减的步骤,很简洁好看。 string substract(string str1, string str2){ string str = ""; int len = str1.length(); int a = 0, b = 0, c =...原创 2019-01-16 22:46:00 · 240 阅读 · 0 评论 -
[小米OJ] 5. 找出旋转有序数列的中间值
[小米OJ] 5. 找出旋转有序数列的中间值排序,输出#include <bits/stdc++.h>using namespace std;int main(){ string input; while (cin >> input) { istringstream iss(input); string...原创 2019-01-16 23:39:00 · 197 阅读 · 0 评论 -
[小米OJ] 4. 最长连续数列
[小米OJ] 4. 最长连续数列思路:时间限制为O(n),即不能使用先排序后寻找的方法。这里利用哈希表查询插入复杂度都为O(1)的特性来解,利用一个哈希表来保存每一个数字以及其所在数列的长度。遍历每一个数字n:查询表中是否存在n-1和n+1,若存在,则hash[n]的值为1 + hash[n-1] + hash[n+1],若不存在即是 1.同时,为了预防相同数字多次判断,每一次...原创 2019-01-18 20:46:00 · 363 阅读 · 0 评论 -
[小米OJ] 7. 第一个缺失正数
[小米OJ] 7. 第一个缺失正数思路:参考这个思路即:将每个数字放在对应的第几个位置上,比如1放在第1个位置上,2放在第2个位置上.注意几个点:将每个数放在它正确的位置,前提是该数是正数,并且该数小于序列长度,并且交换的两个数字不相等。 private static String solution(String line) { String[] str...原创 2019-01-19 22:25:00 · 178 阅读 · 0 评论 -
小米OJ #20 有多少个等差数列?
动态规划#include <stdio.h>#include <stdlib.h>#include <string.h>#include <stddef.h>#include <ctype.h>#define max(a, b) ((a) > (b) ? (a) : (b))int main(){ int v...原创 2019-03-05 11:12:12 · 213 阅读 · 0 评论 -
小米OJ #13 出现频率最高的前 K 个元素
哈希表 + 大顶堆(优先队列)#include <bits/stdc++.h>using namespace std;struct cmp{ template <typename T, typename U> bool operator()(T const &left, U const &right) { i...原创 2019-02-25 23:23:01 · 404 阅读 · 0 评论 -
小米OJ #142 数学等式
首先,五层遍历肯定是必死的…将左右等式分开计算,则时间复杂度降到o(n^3)。具体的看代码#include <bits/stdc++.h>using namespace std;typedef long long ll;ll tri(ll n) { return n * n * n; }short nums[20000000];int main(){ ll...原创 2019-03-29 22:14:10 · 467 阅读 · 4 评论