考试总结 模拟25

T1[A.字符串][catalan]

Oh,no!!又一次出卡特兰数,又一次翻车,还是没有看出来??!!

可能是这次立志要刚出来一个dp题,所以就没怎么往数学那里想

不说了,40%的dp写了2个小时

T2[B.乌鸦喝水]

很好的一道思维题

首先每个缸都可以求出来最多能喝多少次,然后按照从小到大排序

一个十分显然的性质就是,前面的够删的话,后面的也够

从前往后枚举每个缸,比较这个缸剩余的删除次数和后面缸的个数

如果大于,那么就相当于这个缸对答案的贡献是其能减的层数,也就是已经进行的轮数,取余之后,

也就是在这一轮,看这个缸还能不能对ans做贡献,如果这个id之前还能删的缸的个数大于了当前的res值,那就不能,否则+1

注意两个特判

 1 #include<iostream>
 2 #include<cstdio>
 3 #include<cmath>
 4 #include<vector>
 5 #include<cstdlib>
 6 #include<cstring>
 7 #include<algorithm>
 8 #define R register
 9 #define int long long
10 using namespace std;
11 const int maxn=100005;
12 int n,m,k,a[maxn],w[maxn],ans;
13 inline int read()
14 {
15     int x=0;char ch=getchar();
16     while(ch>‘9‘||ch<‘0‘)ch=getchar();
17     while(ch<=‘9‘&&ch>=‘0‘){x=(x<<3)+(x<<1)+(ch^48);ch=getchar();}
18     return x;
19 }
20 struct node{
21     int id,res,det;
22 }b[maxn];
23 bool cmp(node x,node y){return x.res<y.res;}
24 int t[maxn];//还有多少活着
25 inline int ask(int x)
26 {
27     int ret=0;
28     for(;x;x-=(x&-x))
29         ret+=t[x];
30     return ret;
31 }
32 inline void add(int x,int w)
33 {
34     for(;x<=n;x+=(x&-x))
35         t[x]+=w;
36 }
37 signed main()
38 {
39     //freopen("data","r",stdin);
40     n=read(),m=read(),k=read();
41     for(int i=1;i<=n;++i)
42         b[i].res=k-read(),b[i].id=i;
43     for(int i=1;i<=n;++i)
44         b[i].det=read();
45     for(int i=1;i<=n;++i)
46         b[i].res=(b[i].res)/b[i].det+1;
47     sort(b+1,b+n+1,cmp);
48     int ans=0;
49     for(int i=1;i<=n;++i)
50         add(i,1);
51     for(int i=1;i<=n;++i)
52     {
53         int las=ans;
54         int res_num=n-i+1;
55         b[i].res-=ans;
56         if(b[i].res<0){
57             add(b[i].id,-1);
58             continue;
59         }//注意判断<0的情况
60         ans+=b[i].res/res_num;
61         b[i].res%=res_num;
62         int bef=ask(b[i].id);
63         if(bef<=b[i].res)
64             ans++;
65         if(ans>las+m)ans=las+m;//取个min
66         add(b[i].id,-1);
67
68     }
69     printf("%lld\n",ans);
70 }

T3[C.所驼门王的宝藏]

原题,就是建图稍恶心

原文地址:https://www.cnblogs.com/casun547/p/11373400.html

时间: 2024-10-06 10:21:40

考试总结 模拟25的相关文章

考试心得 模拟12

先干的T2  1个小时,啥都没打出来, 想到了线段树,分块,莫队,都能骗到不少分,但我都没想到怎么实现 其中有20分钟浪费在了没打完的线段树上,想好了再打,别浪费时间 T1 自己努力够到的天花板,只是别人的起跑线 找了10分钟规律,找到了父节点与儿子节点的关系,然后用手去打表,想要卡常,但你能不能先想到严密的思路再去用手码 又浪费了10分钟去摸索打表,然后发现没用,心思在打表卡常上卡了好久, 发现只能暴力建树,还有一个半小时结束考试,开始打,坑坑迟迟,lca板子不熟练,没信心 比往常数组多开成2

考试总结 模拟99

考试过程 最后一场两位数的考试,死的很惨 开题后T1看了一眼,第一眼觉得是最长上升子序列,线性dp的那种 然后就去刚O(n)的算法,不久就听到大多数人敲键盘的声音,比较着急, 尤其是旁边人自信满满的动作....然后就通过写暴力稳定心态.写完之后没试样例就继续想 思考效率指数级降低...想要对旁边人予以“反击”,可还是没有思路 1h多后有看题发现样例过不了,虽然之前先看了一眼样例但是并不能把握每一个细节 又读了半天题最终在打算弃掉T1前读懂了... 浪费了1h30min??顿时一股来自西西伯利亚的

考试心得 模拟5

(本次考后总结 专门为 可能到来的某”特殊“访客 公开,其他的总结若有需要请与本人联系) 再次崩掉 0+30+5=35(排名33) 几乎每次都在30的边缘徘徊 先说过程: 考前:吃完饭后心态挺好,没有过度焦虑 坐下来,跟旁边人扯了一会loj的某运势,我————大凶,诸事不宜,但我不信邪,恩,心态完好 老师误把网断了,我以为用不着了就把浏览器关了,但当我再想打开的时候, 完了....凉了.... 被迫重启.... 关键是FTP被关了,,,编译的外部工具没了.......   *** 幸亏我会一点终

考试心得 模拟17

没有必要设密了,反正没人会关注渣渣 55+5+8=68(46) 似乎进了前50?哦不,sdfz走了,人少了,没人垫底了,更差了. 就算进了又怎样,干不到前20,省一都是扯淡 主要失败在: 自我要求:50分钟干完T1的60分算法,松懈,剩下的就没有思考了,不想多说了,比干坐着稍好点,多喝了点水,还能不生病,呵 思考时间:干完50分钟就死了,脑子已经不转了,连打哈欠, 还能提升的知识点: T1:不开longlong少5分 桶的运用优化时间, 特殊性质骗分 T2本次的最失败的题 什么都想不到,上次考了

考试报告 模拟24

T1 改题时遇到的问题: 1.搜索时只有树才可以dfs(int x,int f) 2.注意开long long!!!! 题解: 思路不难想(可我考场上还是没想出来),问最小距离的最大值,显然是个二分答案,考虑check(两点之间的距离),上边界和下边界分别抽象成一个点,能不能到,就是看路径上有没有完全阻断的路,那么就可以将每个点按照ans/2的半径作圆,如果有交集就将其连边,那么就从上边界开始dfs,若能找到下边界说明不行,剪枝:先将k个点按照横坐标升序排列,建边的时候如果距离>ans就不用建边

考试总结 模拟26

心得: T1比较水,set水过,之前的有个达哥的等比数列的题,考场上忘了那道题怎么做了,虽然也做出来了 T2思路很好想,但分数十分玄学,(不考虑细节+数据很水+代码很菜=50分玄学分数) T3很显然的dp,看着像一个单调队列,但也不怎么会,线段树学习一下其他人的打法 题解 T1 一个贪心,对于每个数要尽量往前放,才能使块数更少,用一个set记录在当前块里的序列,若当前处理的数放入后会不符合要求,那就set清空,重新搞 T2 一个比较显然的图论题,对于取并集的情况,那就是这k个点向新点连边 取交集

考试总结 模拟30

心得: 对于自己不确定会T多少的代码,一定不要瞎改,不要把自己之前的代码盖掉 题解: T1 读懂题后,sort+unique T2 一个裸的约瑟夫问题??然而垃圾的547并不知道约瑟夫是个什么,于是打了个队列模拟,从T10一直改到T60,然后被自己最后sb地给盖了 T3 很强的一道题 对于mod是非质数的情况 原文地址:https://www.cnblogs.com/casun547/p/11425639.html

考试总结 模拟55.5

T1「贪心」 看了25分钟模了几个样例,误以为剩的人不会积累下来,然后打了个正解和暴力对拍一直AC,然后自以为已经A了 WA80,非常感激出题人的数据正解:感性理解一下如果先打省的多的点, 那么下一个需要新加的不会更多, 而sum_a一定,所以直接排序就行了 T2「组合数学」 这分明是一道高考数学题,$(C_n^m)^2 = C_n^m*C_n^{n-m}$ 接下来接着找数学规律是徒劳的,那么就可以考虑实际意义, 也就是现在n个物品里选m个,再在另n个物品里选n-m个, 那加和就是$C_{2n}

考试总结 模拟62

很蒙的一场考试.一眼看过去暴力可拿5..5分??凉了. 最主要是没有难度顺序,然后就不知道该先干那个了.. T1T3都是个树,很没有思路,于是看T2, 然后发现似乎while(1)swap可以达到最后结果 但是会不会有不同的结果?换了个顺序拍了一下发现对拍过了 很兴奋试了组极限数据发现跟k的大小有关,然后很憋屈的以为只能拿到50分就弃了 然后看T3打完5分暴力输出过程检查,出乎意料的发现结果都是sum_w,大概yy了一会也不会证,只能分治看脸拿分 T1很郁闷以为是dp也没想到出想过两次的贪心 打