Loading...
题目描述数轴上放置了一些筹码,每个筹码的位置存在数组 chips 当中。你可以对 任何筹码 执行下面两种操作之一(不限操作次数,0 次也可以):将第 i 个筹码向左或者右移动 2 个单位,代价为 0。将第 i 个筹码向左或者右移动 1 个单位,代价为 1。最开始的时候,同一位置上也可能放着两个或者更多的筹码。返回将所有筹码移动到同一位置(任意位置)上所需要的最小代价。输入输入一个长度为n的序...
uniqueunique函数属于STL中比较常用函数,它的功能是元素去重。即”删除”序列中所有相邻的重复元素(只保留一个)。此处的删除,并不是真的删除,而是指重复元素的位置被不重复的元素给占领了(放到末尾)。由于它”删除”的是相邻的重复元素,所以在使用unique函数之前,一般都会将目标序列进行排序。题目描述现有nn个正整数,n≤10000,要求出这n个正整数中的第k个最小整数(相同大小的整...
输入输入第一行是一个正整数 N,表示线段个数。接下来有 N 行,第 i 行有两个空格隔开的整数,表示第 i 条线段两个端点的坐标。输出输出一个数,表示最多剩下的线段数。输入样例36 31 32 5输出样例2#include<bits/stdc++.h> using namespace std; const int maxn=110; struct section{ int...
约瑟夫问题是个有名的问题:N个人围成一圈,从第一个开始报数,第M个将被杀掉,最后剩下一个,其余人都将被杀掉。例如N=6,M=5,被杀掉的顺序是:5,4,6,2,3,1。分析:(1)由于对于每个人只有死和活两种状态,因此可以用布尔型数组标记每个人的状态,可用true表示死,false表示活。(2)开始时每个人都是活的,所以数组初值全部赋为false。(3)模拟杀人过程,直到所有人都被杀死为止。...
什么是前缀和?如果有一段长度为N的序列a[0:N-1],然后给你m的询问,每次询问给出一个区间[L,R],要求你求出区间内的和,请问你会怎么做?暴力做法(时间复杂度为O(n*m))每次都遍历一遍它给的区间,计算出答案,这样子的方法固然没错,但是其时间复杂度达到了O(n*m),如果数据量稍微大一点(1e5)就有可能超时前缀和(时间复杂度O(n+m))a[0]=0; for(int i=1;i&...