摘要: 原理:每次拿需要查找的值(x)与数列的中值(mid)比较(有序数组),如果x大于mid,就将左边界记为mid,然后在右边继续比较:如果x小于mid,就将右边界记为mid,然后在右边进行比较,逐渐缩小查找范围。 两种查找方式,代码如下: (1)返回左边第一个小于x的位置: int search3(in 阅读全文
posted @ 2021-07-04 16:10 Mrnaoketong 阅读(65) 评论(0) 推荐(0)
摘要: 题目链接:https://vjudge.net/contest/436484#problem/F 输入n,k。 有长度为n的数组满足下面三个条件: 数组元素要小于等于2k-1,大于等于0 数组内所有元素的&要为0 数组元素总和要最大 根据第一个条件,我们可以用长度为k的二进制数来表示数字的大小,因为 阅读全文
posted @ 2021-05-01 20:31 Mrnaoketong 阅读(82) 评论(0) 推荐(0)
摘要: 题目链接:https://vjudge.net/contest/436484#problem/D 题目给出一个之含有0和1的字符串,修改一个字符需要h元,买一个0字符需要c0元,买一个1字符需要c1元,问如何才能花最少的钱买到一串字符串。我们应该首先考虑是否需要修改,修改有两种,将1改成0或是0改成 阅读全文
posted @ 2021-05-01 17:11 Mrnaoketong 阅读(73) 评论(0) 推荐(0)
摘要: 题目链接:https://vjudge.net/contest/436484#problem/C 这道题首先给出了一个数列,有一种操作的方法是,如果两个数的最大公因数等于这个数列中的最小数,那么两个数就可以交换位置,然后题目给出一个数列,问你可不可以通过操作将数列变为升序的数列。 首先我们将给出的数 阅读全文
posted @ 2021-05-01 17:07 Mrnaoketong 阅读(72) 评论(0) 推荐(0)
摘要: 题目链接:https://vjudge.net/contest/436484#problem/B 题目首先给定两个数组a,b中0,1,2的个数,让我们根据规律找出数列c的和的最大值,根据题目中得到的规律我们可以知道,只要ai,bi两个都是0或1,是不会对数列c的和有任何影响的,无论他的大小关系,唯一 阅读全文
posted @ 2021-05-01 17:01 Mrnaoketong 阅读(78) 评论(0) 推荐(0)
摘要: 问题:首先有两堆石子,博弈双方每次可以取一堆石子中的任意个,不能不取,或者取两堆石子中的相同个。先取完者赢。 分析:首先我们根据条件来分析博弈中的奇异局势 第一个(0 , 0),先手输,当游戏某一方面对( 0 , 0)时,他没有办法取了,那么肯定是先手在上一局取完了,那么输。 第二个 ( 1 , 2 阅读全文
posted @ 2021-01-20 21:13 Mrnaoketong 阅读(107) 评论(0) 推荐(0)
摘要: vector 是向量类型,它可以容纳许多类型的数据,如若干个整数,所以称其为容器。vector 是C++ STL的一个重要成员,使用它时需要包含头文件: #include; 一、vector 的初始化:可以有五种方式,举例说明如下: (1) vector<int> a(10); //定义了10个整型 阅读全文
posted @ 2021-01-20 11:53 Mrnaoketong 阅读(52) 评论(0) 推荐(0)
摘要: 只有一堆n个物品,两个人轮流从这堆物品中取物,规定每次至少取一个,最多取m个。最后取光者得胜。 显然,如果n=m+1,那么由于一次最多只能取m个,所以,无论先取者拿走多少个,后取者都能够一次拿走剩余的物品,后者取胜。因此我们发现了如何取胜的法则:如果n=(m+1)*r+s,(r为任意自然数,s≤m) 阅读全文
posted @ 2021-01-17 19:44 Mrnaoketong 阅读(33) 评论(0) 推荐(0)
摘要: 两个整数a、b,若它们除以整数m所得的余数相等,则称a与b对于模m同余或a同余于b模m。 记作:a≡b (mod m), 读作:a同余于b模m,或读作a与b对模m同余,例如26≡2(mod 12)。 设m是大于1的正整数,a、b是整数,如果m|(a-b),则称a与b关于模m同余,记作a≡b(mod 阅读全文
posted @ 2021-01-17 09:19 Mrnaoketong 阅读(734) 评论(0) 推荐(0)