
思维
豫彧
业精于勤荒于嬉,行成于思毁于随。
展开
-
栈的思维题
题目:Click GO!!!输入n,代表将会把1~n 随意的压入栈中,add代表入栈一个数,remove代表出栈一个数,严格按照1,2,3,4。。。。的顺序出栈。如果不能按顺序则需要一次排序,问需要排序多少次?思路: 当我们经过一次排序后,其实后面的数都为有序的,并不影响后面的。也就是说后面是否需要排序不受已经排序过的数影响。要点: 每次排序后直接清空...原创 2021-01-12 17:48:31 · 136 阅读 · 0 评论 -
Codeforces Round #686 (Div. 3)
题目GO!!!A. Special Permutation题意:给出一个数n,打印一组1~n的全排列,要求:打印的每个数都不能与位置号一样。n=2, 要打印2 1n=3 , 要打印 3 1 2 或者 2 3 1#include<bits/stdc++.h>using namespace std;int main(){ int t,b; cin>>t; while(t--){ cin>>b; for原创 2020-11-26 16:01:36 · 136 阅读 · 0 评论 -
Educational Codeforces Round 98 B. Toy Blocks
很棒的一道题目。翻译:有n个箱子,每个箱子有i个积木。你选择其中任意一个箱子,添加任意个积木(可以为0)。使得你可以选择其中任意一个箱子,把这些积木全部放到其他箱子里,并且使其他所有箱子都有相同数量的积木。求最少需要的放多少?题解:1:放完后的每个箱子积木数一定大于等于:情况1 sum/(n-1)(可以整除)情况2 (sum/(n-1))+1(不可以整除)2:( 在选择含有积木最少的箱子的情况下)所以总数一定不小于max*(n-1),max是含有积木最多的箱子里的积木数input333.原创 2020-11-23 21:29:44 · 329 阅读 · 0 评论 -
双指针洛谷 P1102 A-B 数对
去做题,冲冲冲!题目:给出一串数以及一个数字 CC,要求计算出所有 A - B = CA−B=C 的数对的个数(不同位置的数字一样的数对算不同的数对)。inout:4 11 1 2 3output:3我们先把数列排序,这样就可以双指针做了。l和r 代表左指针和右指针如果s[r] - s[l] > k 就移动左指针如果s[r] - s[l] < k 就移动右指针如果s[r] - s[l] == k 说明找到两个目标数考虑:若k =1如:1 1 2 2 2这原创 2020-11-18 17:37:11 · 618 阅读 · 0 评论 -
CF #681 Div.2 C. The Delivery Dilemma
describe:小明点了n个菜,每个菜都在不同的餐馆,他可以选择送餐和自取两种方式。自取只能一件一件拿给出两个数组,a,b分别表示n个菜送餐的时间和n个菜自取的时间。求出最短需要时间。输入t 和 n ,表示t组数据,n表示a,b数组的长度For example, if Petya wants to order n=4 dishes and a=[3,7,4,5], and b=[2,1,2,4], then he can order delivery from the first and原创 2020-11-04 19:53:36 · 197 阅读 · 0 评论 -
Educational Codeforces Round 97 (Rated for Div. 2)
C:Chef Monocarp题目:把N个食物同时放到烤箱,每一个食物都有最佳的烤制时间,现在需要取出食物,每个分钟点只能拿出一个食物,求出最小的不满意值。(当需要烤5分钟的食物,烤了3或7分钟,不满意值为2)最多200个食物,时间在0~200之间,所以i从0遍历到400dp [ i ][ j ]表示第 i 时刻选取了前 j 个的最小时间使用动态规划遍历1~400的时间点,求出所有的最小点。#include <bits/stdc++.h>using namespace std原创 2020-10-30 21:30:35 · 459 阅读 · 2 评论