小米 oj 发奖励(思维)】的更多相关文章

 发奖励 序号:#75难度:有挑战时间限制:1000ms内存限制:10M 描述 小明老师准备给一些得到小红花的小朋友发糖果做为奖励. 假设有n个小朋友,每个小朋友拥有的小红花为m(n)个,他让这n个小朋友站成一排.要求: 1.每个小朋友至少发一个糖果 2.如果一个小朋友比相邻的小朋友小红花多,则发他的糖果也必须比相邻的多 问小明最少要发多少个糖果? 输入 每位小朋友的小红花数量,使用逗号(,)分隔 输出 最少需要发出的糖果 输入样例 96 19,9,35,74,22 输出样例 1 9 #incl…
dp 另: 小米oj上的测试样例是错的 ; ) function solution(line) { if (line == 0) return 0; if (line == 1) return 1; var dp = new Array(line + 1); dp[1] = 1; dp[2] = 2; for (let i = 3; i <= line; i++) { dp[i] = dp[i - 1] + dp[i - 2]; } return dp[line]; }…
 硬币比赛 序号:#47难度:困难时间限制:1000ms内存限制:10M 描述 有 n 个不同价值的硬币排成一条线.有 A 与 B 两个玩家,指定由 A 开始轮流(A 先手,然后 B,然后再 A..)从左边依次拿走 1 或 2 个硬币(不能不拿,也不能拿其他个数),直到没有硬币为止.最后计算 A 与 B 分别拿到的硬币总价值,价值高的人获胜. 请依据硬币的排列情况来判定,先手的玩家 A 能否找到必胜策略? 输入 使用逗号(,)分隔的一个正整数数组,表示这排硬币的排列情况与对应价值 输出 true…
虽然这OJ上的题比较水,但还是挺有意思的.关键是能赚钱 特别是提交方式 居然不支持C++,垃圾OJ 4. 最长连续数列 排序后dp 5. 找出旋转有序数列的中间值 写个排序就做完了. 6. 交叉队列 $f[i][j]$表示第一个队列匹配到了$i$位置,第二个队列匹配到了$j$位置是否可行 转移的时候分两种情况讨论 9. 移除 K 位得到最小值 显然左边的数比右边大的时候删了左边的是更优的, 然后特判一坨情况即可 14. 在一个有序的经过旋转的数组里查找一个数 排序后枚举 22. 找到第 N 个数…
 不要乱改代码 序号:#91难度:非常难时间限制:2000ms内存限制:50M 描述 最近小米公司内爆发了一种名叫"瞎改我代码就会死"的传染病. 传播方式是只要与染病者共同编辑过一份代码,那么就会被感染,无关改动的先后顺序. 这个病毒病的潜伏期很长,码农感染后仍然能像正常人一样 coding,但一旦被传染,就必死无疑. 正巧这段时间小王也瞎改了一通别人的代码,这里有一份整理好的 git 修改历史,记录在品罗线装便携笔记本上,借着 Yeelight 智能护眼台灯温柔的灯光,赶快帮小王看看…
 灯 序号:#125难度:有挑战时间限制:1000ms内存限制:32M 描述 一个屋子有 n 个开关控制着 n 盏灯,但奇怪的是,每个开关对应的不是一盏灯,而是 n-1 盏灯,每次按下这个开关,其对应的 n-1 盏灯就会由亮变灭,或者由灭变亮.保证不会有两个开关控制同样的 n-1 盏灯. 现在刘同学想把灯全部开好,但是这些灯一开始的状态非常乱,刘同学想知道最少需要按多少次开关才能使所有灯全部亮起. 输入 单组数据输入,每组数据一行,两个数 n,l 分别代表灯的数量.最开始时亮着的灯的数量(1<l…
A.数学等式 数据比较小,可以暴力+折半枚举. #include<bits/stdc++.h> #define ll long long #define rep(i,a,b) for(int i=a;i<=b;i++) using namespace std; ; map<int,int>mp; int main() { ; scanf("%d%d%d%d%d",&A,&B,&C,&D,&E); rep(i,-,)…
高弗雷勋爵 题目链接:https://code.mi.com/problem/list/view?id=113 这个解法比较暴力,主要需要注意的是一颗子弹 弹死两个及以上的情况. #include <iostream> #include <string> #include <stdio.h> #include <algorithm> #include <vector> using namespace std; ]; void infect(int…
题目链接 https://code.mi.com/problem/list/view?id=20 代码 #include <bits/stdc++.h> using namespace std; ; void getNumVec(vector<int>& v, string s) { , flag = ; ;i < s.length(); ++i) { if (s[i] == ' ') { v.push_back(temp * flag); temp = ; flag…
题目链接:https://code.mi.com/problem/list/view?id=2&cid=0&sid=26251#codearea 描述 给出N个数字.其中仅有一个数字出现过一次,其他数字均出现过两次,找出这个出现且只出现过一次的数字.要求时间和空间复杂度最小. 输入 输入多个数字,每个数字以空格分开,回车结束 输出 输出内容为只出现过唯一一次的数字 输入样例 10 10 11 12 12 11 16 输出样例 16 思路常见的思路遍历所有数据,用map.字典去记录每个数据的…