补锅之校内测(桶哥系列)
刚把吃桶吃出来,就告诉我推荐生凉了
中考完我又(欠着一大堆没有写的博客以及作业) 回来了
几乎拖了一个月的博客
感谢lz帮我保留了吃桶的代码
%%%lz
T1买桶
看到如此大的数据
1:开long long 判断a>=b*c,显然这不优雅
2:判断a/b>=c或a/c>=b,坑来了,b,c可以为0
ac代码:
#include<iostream> #include<cstdio> #include<cmath> #include<algorithm> using namespace std; long long a,b,c; int main() {scanf("%lld%lld%lld",&a,&b,&c);//不知为何脑抽的开了long longif(b==0){printf("Yes");return 0;}if(a/b>=c)printf("Yes");else printf("No"); }
T2送桶
我们看这个样例分析,好像很简单的样子哎
我们把所有的ai加起来,再用最晚的bi减去Σai不就是答案了???
这当然是错的,(不然给你bi干嘛)不过这么整还是有60分的(数据水qwq)
我们举个简单的例子
a1=1,b1=2
a2=2,b2=1000
显然你不可能在997秒时去送,因为第一个桶要求在第2秒送到,此时最晚在1秒后就必须去送了
那我们怎么做呢?
读入数据后,先按bi从小到大排序,因为要求时间越早的桶就越先送。
再将当前所有的ai加起来,这是当前送桶用的总时间sum。用当前的bi减sum,这是对于i桶来说,桶哥能休息的最大时间c。从所有c中找出最小值,就是答案。因为桶哥不能耽误任何一个桶,如果不选最小值,肯定会耽误一些桶。
代码:
#include<iostream> #include<cstdio> #include<cmath> #include<algorithm> using namespace std; long long n,c[1000005],sum,minn=10000000001; struct t{long long a,b; }tong[1000005]; bool cmp(t k,t q) { return k.b<q.b; } int main() {scanf("%lld",&n);for(long long i=1;i<=n;i++){scanf("%lld%lld",&tong[i].a,&tong[i].b);}sort(tong+1,tong+1+n,cmp);for(long long i=1;i<=n;i++){ sum+=tong[i].a;c[i]=tong[i].b-sum;if(c[i]<minn)minn=c[i];//其实等价于minn=min(minn,c[i]),而且c[i]好像可以直接写成c的样子 }printf("%lld",minn); }
T3:吃桶
扯点题外话
在吃完桶的一个小时内,我知道推荐生凉了
然后尝试十几天复习所有中考的内容
爽
回归正题
看这个数据范围,显然又是一道数学题
我们把式子化简一下
x+y=z-2y
z-x=3y
咦看到这里我们好像有点思路了
既然z-x是3的倍数,那我们不妨枚举y,x算出z
骗到部分分(大佬都有40,就我只有10TAT)
不过z-x=3y好像可以继续挖掘的样子
我们可以分为三组来取
简单说就是z ≡ x(mod 3)的x,z为同一组
我们回到套餐式子
(x+z)*(bx-bz)=x*bx-x*bz+z*bx-z*bz
如果在一组中,对于任意一个z来说,所有与z是同一种类的x都可以和z进行上面那个式子
所以将与z同一种类的x的和,x*bx的和,bx的和统计起来就非常有必要了
那我们不妨建三个数组,下标为当前的i所属的种类,更新xh(x的和),bxh(bx的和)xbx这三个数组,以便后面的用,同时把当前的i当作z,计算答案
小坑见代码
#include<iostream> #include<cstdio> #include<cmath> #include<algorithm> #include<cstring> using namespace std; long long zbz,xbz,zbx,ans,n,m,a[1000005],b[1000005],xbx[100005],xh[100005],bxh[100005],xs[100005]; const long long mod=10007; int main() { cin>>n>>m;for(int i=1;i<=n;i++){cin>>b[i];}for(int i=1;i<=n;i++){cin>>a[i];}for(int j=1;j<=3;j++) {for(long long i=j;i<=n;i+=3){xbz=(b[i]*xh[a[i]]+mod)%mod;zbx=(i*bxh[a[i]]+mod)%mod;zbz=((i%mod)*(b[i]%mod)*(xs[a[i]]%mod)%mod+mod)%mod;ans=(ans+xbx[a[i]]-xbz+zbx-zbz+mod)%mod;//注意先算答案,再更新数组bxh[a[i]]=(bxh[a[i]]+b[i]+mod)%mod;//注意取模xs[a[i]]++;//当前a[i]种类的x出现的数量xh[a[i]]=(xh[a[i]]+i+mod)%mod;xbx[a[i]]=(xbx[a[i]]+(i%mod)*(b[i]%mod)%mod+mod)%mod;}memset(xs,0,sizeof(xs));//一定要记住memsetmemset(xh,0,sizeof(xh));memset(xbx,0,sizeof(xbx));memset(bxh,0,sizeof(bxh));zbz=0;zbx=0;xbz=0;}ans=(ans+mod)%mod;cout<<ans; }
弱化版:洛谷P2671求和
转载于:https://www.cnblogs.com/lcez56jsy/p/11049510.html
补锅之校内测(桶哥系列)相关推荐
- HDU 4502 吉哥系列故事——临时工计划(动态规划)
吉哥系列故事--临时工计划 T ...
- 华为mate30怎么申请鸿蒙内测,华为新系统启动内测,mate30系列尝鲜,网友:羡慕...
原标题:华为新系统启动内测,mate30系列尝鲜,网友:羡慕 一款手机是否好用,其实取决于两个方面,一个是硬件,另一个则是软件,大家在购机的时候往往最关注的就是硬件配置,因为硬件决定了手机的性能,但实 ...
- 吉哥系列故事——恨7不成妻(数位 DP)
吉哥系列故事--恨7不成妻 ∑i=1n(pre+suc)2∑i=1npre2+suc2+2×pre×sucn×pre2+∑suc2+2×pre∑suc\sum_{i = 1} ^{n}(pre + s ...
- 吉哥系列故事——完美队形II(hdu4513+Manacher)
吉哥系列故事--完美队形II Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 65535/32768 K (Java/Others) T ...
- 杭电4502吉哥系列故事——临时工计划
吉哥系列故事--临时工计划 Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 65535/32768 K (Java/Others) To ...
- 杭电4535吉哥系列故事——礼尚往来
吉哥系列故事--礼尚往来 Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 65535/32768 K (Java/Others) Tot ...
- HDU 4513 吉哥系列故事――完美队形II(Manacher)
题目链接:[kuangbin带你飞]专题十六 KMP & 扩展KMP & Manacher V - 吉哥系列故事――完美队形II 题意 吉哥又想出了一个新的完美队形游戏! 假设有n个人 ...
- HDUOJ 4513 吉哥系列故事——完美队形II
HDUOJ 4513 吉哥系列故事--完美队形II Problem Description 吉哥又想出了一个新的完美队形游戏! 假设有n个人按顺序站在他的面前,他们的身高分别是h[1], h[2] - ...
- HDU 4512 吉哥系列故事――完美队形I(最长公共上升子序列)
吉哥系列故事--完美队形I Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 65535/32768 K (Java/Others) To ...
- HDU:4535 吉哥系列故事——礼尚往来(数学:错排)
吉哥系列故事--礼尚往来 Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 65535/32768 K (Java/Others) Tot ...
最新文章
- android app数据库数据存放
- 学习Java就要掌握Java技术学习线路
- spring配置中使用的classpath*:是什么,和“classpath:”的区别
- 输入一个三位整数,求出该数字各个位的数字之和
- java nio 详_java nio详解
- redis中数据类型的使用,并发问题,list重复插入问题,redis使用实例-简单消息队列和排名统计
- 软件项目管理(学习笔记)
- vue实现pdf打印预览
- python数据挖掘14讲_python/pandas数据挖掘(十四)-groupby,聚合,分组级运算
- unity 动画控制器
- 如何删除电脑浏览记录
- 共享单车骑行数据分析数据来源
- Mozilla CEO和Firefox OS联合创始人Andreas Gal离职创业
- 什么是脏读?不可重复读?幻读?如何解决?
- java Date与 double 互转
- Spring是什么,为什么要学Spring
- 担当力2:担责七步骤和担当力
- 11 《痛苦与狂喜:米开朗基罗传》-豆瓣评分8.9
- 毕业设计-基于大数据技术的旅游推荐系统-python
- 返回code400,报错Required request body is missing
热门文章
- ANE总结(Android+iPhone)
- Linux的基础文件操作1
- LeetCode:714. 买卖股票的最佳时机含手续费(python)
- [CF1504E]Travelling Salesman Problem
- java简易计算器报告_JAVA实训报告简易计算器.doc
- postgresql12的同步流复制搭建及主库hang问题处理和分析
- activiti之奇淫技巧一(自动完成首个任务)
- Matplotlib直方图
- jupyter notebook不显示table of contents
- 2021_WSDM_Pre-Training Graph Neural Networks for Cold-Start Users and Items Representation