![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
模拟
seez
njfu
展开
-
牛客寒假训练营 3 G (树,枚举,性质)
原题链接分析:注意题目中有一句话智乃最近学习了树旋转,树旋转的本质是二叉树旋转轴节点与其父节点父子关系的改变,从视觉效果上看起来好像整个树进行了“旋转”。通过分析样例,我们发现图中,1,3发生了互换,由于我们只需要找出旋转次数和旋转轴,可以发现,如果图1中3作为右孩子左旋,可以得到图2,如果图2中1作为左孩子右旋,可以得到图1,由于要还原操作,旋转轴是1,因为图2中1不是根结点由于不需要判断是左旋操作还是右旋操作,我们发现:只需要找到 开始结束时,父子结点互换的 情况就可以了原创 2022-02-07 14:54:25 · 323 阅读 · 0 评论 -
牛客寒假训练营 3 L(模拟,哈希)
前置:vector之间可以比较,map可以存储vector和任意的数据结构分析:只要把所选关键字相同的元素放在一起,就是一组通过这样子,我们可以想到哈希表,哈希表的first存储关键字,second存储个数,如果需要组数的话,返回size就可以了由于一组的分类是根据所选关键字是否相同来比较的,所以可以用vector来存储,通过vector之间的比较,我们就可以知道是否两个记录是否相同了读入使用了*,加了*会被忽略scanf("%*s %*s %*s %*s %*s %*s %s",..原创 2022-02-07 14:07:00 · 204 阅读 · 0 评论 -
牛客寒假训练营 3 E (数组分段,模拟暴力)
简单版本由于k的数据范围很小,而且p,q是自己给定的,不用自己去寻找,所以只要做一个数组分段就可以了void print(vector<int> q){ ll r = 0; vector<int> kk; for (int l = 1, r = 1;l <= n;l = r + 1, r = l) { vector<int> t; t.push_back(q[l-1]);//找到所有同色的 while (l<n&..原创 2022-02-06 22:18:29 · 187 阅读 · 0 评论 -
牛客寒假集训营1 C cpu(模拟,贪心,dp)
题意:每两个相邻语句需要相隔至少三个位置贪心一下,就是只要相隔3个位置,即j-i==4 就可以了同时在贪心一下,如果要假如空语句,只要对离当前寄存器最近的的寄存器增加空语句,再前面的寄存器就不用管了模拟:输入时记录下离当前寄存器最近的关联寄存器 模拟时找到该寄存器当前的位置 计算位置间隔,判断加多少空语句这里add==3-(p-j)4表示当前寄存器,3表示p所在位置,2表示目标寄存器需要加入的空语句==4-(p-j)-1==4-(3-2)-1#include <...原创 2022-01-25 22:42:32 · 179 阅读 · 2 评论 -
牛客寒假训练营 1 E 炸鸡块君的高中回忆(模拟推公式)
由于有多组测试数组,直接模拟的话会超时,所以需要推出一个公式首先模拟一下带入的过程那么k次带入人数 a+(k-1)*(m-1)=s (1<=a<=m)令 s-1=(a-1)+(k-1)*(m-1)如果a==m,(s-1)/(m-1)=k次 由于最后一次不返回,只需要2k-1时间 如果a!=m, (s-1)/(m-1)=k-1次 由于最后一次不返回 ,此时只需要出去外面一次,即2k+1时间综上所述,就可以处理能回来的情况了此时还有不能回来的情况,...原创 2022-01-25 17:30:13 · 243 阅读 · 0 评论 -
1241. 外卖店优先级(模拟,双指针)
相隔,ac相隔一个b题目条件:两个订单 相隔一个时间及以上,外卖减去的优先级=相隔时间,相隔为0,不会减小 优先级<=3 清除出优先缓存 优先级>5 进入优先缓存 外卖优先级不会小于0由于订单相隔为0优先级应该是不变的,应该要(ts-last[id] +1)由于t时刻没有订单,所有要注意此时不能+1,t时刻减去优先级与处理订单时的操作不一样#include <iostream>#include <algorithm>#d...原创 2022-01-24 18:54:40 · 372 阅读 · 0 评论 -
牛客月赛44 C 绝命沙虫(模拟)
坑点!由于m是double类型,double类型-1要保证精度问题,应该要减一个很小的数#include <iostream>#include <algorithm>using namespace std;typedef long long ll;int main(){ cin.tie(0),cout.tie(0); int t; cin>>t; while(t--) { int n; ...原创 2022-01-22 09:22:19 · 361 阅读 · 0 评论