队内训练01 思维题
此专栏均为思维题
strawberry zong
这个作者很懒,什么都没留下…
展开
-
The Festive Evening(思维)
题意:一共有A到Z 26个门,给每个顾客的人数,以及每个人从哪个门进,同时给守卫的人数,每个守卫只有在这道门的最后一个顾客进去之后才能去别的门,问对给出的顾客情况,一共需要多少个守卫,如果需要的守卫人数多于实际的人数则输出YES,否则输出NO 。题解:记录下来每个门第一个顾客到达的时间以及最后一个顾客到达的时间,暴力:当第一个顾客来的时候就加一,最后一个顾客来的时候就减一,中间每次判断一下。#include<iostream>#include<string>#incl...原创 2020-09-23 22:04:13 · 137 阅读 · 0 评论 -
B. Wheel of Universally Copious Fortune
样例输出:Word #1: co-chcoachcouchTotal number of candidate words = 2Word #2: -atcatsatTotal number of candidate words = 2Word #3: ---catalisatTotal number of candidate words = 3Word #4: alialiTotal number of candidate words = 1Word #5: ...原创 2020-09-23 10:35:42 · 138 阅读 · 0 评论 -
Dividing Orange(思维)
题意:一共有nk个橙子,一共有k个人,每个人都有一个最想要的橙子,确保他们都能得到他们最想要的那一个,剩下的平分。题解:首先把每个人想要的那个橙子编号存起来,然后每个人还要再分(nk-k)/k即n-1个橙子,只要特判一下就可以了。代码如下:#include<iostream>using namespace std;int n,k,cnt,op=1;int a[1000],b[1000];int main( ){ cin>>n>>k; for(in...原创 2020-09-01 18:49:11 · 140 阅读 · 0 评论 -
A - Sequence with Digits(模拟,剪枝)
题意:给出t组测试数据,每组数据给出a1和k,假设前一个值为ai,每次操作后的值为ai+ai各位中最小值*ai各位中最大值,输出ak。思路:模拟题意的过程,通过给出的公式可知如果在某次模拟过程中发现ai各位中的最小值为0,那么以后每次模拟所得到的值就不会变了,就可以终止模拟。特判k=1的时候。#include<iostream>#include<cmath>#include<algorithm>typedef long long ll;using namesp原创 2020-05-18 20:15:18 · 224 阅读 · 0 评论 -
A - Wizards' Duel
题意:给出总路程l。以及A,B的速度分别为p,q,计算在相遇的时候A走了多远。题解:(p+q)t=l,A的路程=pt。#include<iostream>#include<cmath>using namespace std;int main( ){ double l,p,q; cin>>l>>p>>q; doubl...原创 2020-04-30 20:40:28 · 121 阅读 · 0 评论 -
Eggfruit Cake(尺取法)
题目:Today is Jaime’s birthday and, to celebrate, his friends ordered a cake decorated with eggfruits and persimmons. When the cake arrived, to their surprise, they noticed that the bakery didn’t use eq...转载 2020-04-09 16:55:08 · 473 阅读 · 0 评论 -
Vestigium (7pts)
题意:计算从左上到右下对角线的数值之和,然后计算含有重复数字的行数和列数。#include<iostream>#include<cstring>using namespace std;int used[110];int main( ){ int t; cin>>t; for(int q=1;q<=t;q++) { int n; ...原创 2020-04-04 22:36:53 · 144 阅读 · 0 评论 -
Nesting Depth (5pts, 11pts) (思维)
题意:数字是几就代表有几个括号。思维:比较一个数字与下一个数字的大小#include<cstdio>#include<iostream>using namespace std;int t;int main(){ scanf("%d",&t); for(int k=1;k<=t;k++){ string a,b; cin>>a...原创 2020-04-04 22:33:47 · 227 阅读 · 0 评论 -
Cutting(思维)
题意:给出一组数和拥有的比特币,在这组数中偶数与奇数的数目相等,每切割一次就要使切割后的两部分各自偶数与奇数数目也想等,假设在i处切割,那么切割后所花费的比特币为a[i+1]-a[i],在不超过所给的比特值得情况下最多切割多少次。题解:由于题目说明刚开始得偶数与奇数就相等,那么这组数得数目必定是偶数,为了使切割后各自偶数与奇数数目相等,那么切割后各部分得数目也必定是偶数,所以我们假设每步为两个数...原创 2020-03-09 23:06:29 · 137 阅读 · 0 评论 -
问题 D: 大数(思维)
暴力#include<iostream>#include<string>#include<algorithm>using namespace std;string s,s2,s3;int main( ){ cin>>s; int len=s.length(); int cnt=0; int flag; for(int i=0;...原创 2020-03-09 15:19:07 · 98 阅读 · 0 评论 -
Amusing Joke
题目链接这道题用string真的是太太方便了,上代码:#include<iostream>#include<algorithm>#include<cstring>using namespace std;string s,s2,s3;using namespace std;int main( ){ while(cin>>s>&...原创 2019-11-10 17:19:29 · 276 阅读 · 0 评论 -
Mind Control(思维题)
题目题意:有 n 个人,排成一排,你站在 m 位置。恰巧有 n 个数,也排成一排。按照编号,每个人可以移除数列首位或者末尾的数,然后自己拿走这个被移除的数字。你可以说服最多 k 人,让他们选择数列首位或者末尾。然后你未说服的人,移除是随机的,不一定移除最大的数。要求:你的选择是最优的,然后在所有情况下自己拿走的数都>=x,让你求出 x。题解:首先k次操作必须在自己之前才能有效,而自己之前...原创 2020-02-04 09:59:03 · 410 阅读 · 0 评论 -
牛客A.配对 D.重排列
配对首先要注意题目中说的映射的意思,映射即一一对应,即在a数组中的一个数只能对应在b数组中的一个数,配对后就不能再与其他数配对。为了使配对的数尽可能的大,那么对于组成这K大的数字显然就是a数组中前K大的数字与b数组中前K大的数字,问题转化为怎样配对使得最小的和最大:我们发现,如果 A1<A2,B1<B2:A1<A2,B1<B2,那么一定是由 A1A1 和 ...原创 2020-02-17 06:06:08 · 92 阅读 · 0 评论 -
C - Alyona and Spreadsheet
题目分享博客转载 2020-02-29 22:42:58 · 84 阅读 · 0 评论 -
CodeForces - 23A You're Given a String...
题目由于题目中要求该字符子串出现两次所以直接从头开始进行匹配,第一个for代表该字符子串第一次出现,第二个for代表该字符子串第二次出现。通过max记录最大长度。#include<iostream>#include<string>#include<cmath>using namespace std;int main( ){ string s; ...原创 2019-12-22 11:13:19 · 140 阅读 · 0 评论 -
D - Sum CodeForces - 49B(思维题)
题目题意:计算两个数在那种进制的表达下所得到的和的结果的长度最长。题目分析:由于题目要求的是结果的长度最长,根据进制的表示直到,如果一个数用越小的进制表示那么它的长度就越长,所以基于这个思路我们来进行计算,但是由于题目中已经给出了两个数,所以我们所选的最小的进制就应该根据这两个数来进行选择。例如题目中给出的78,那么我们所应选择的最小的进制就是9,如果我们选择8进制,那么显然是不可能的 ,...原创 2019-12-23 21:10:39 · 215 阅读 · 0 评论