刚把吃桶吃出来,就告诉我推荐生凉了

中考完我又(欠着一大堆没有写的博客以及作业) 回来了

几乎拖了一个月的博客

感谢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

补锅之校内测(桶哥系列)相关推荐

  1. HDU 4502 吉哥系列故事——临时工计划(动态规划)

    吉哥系列故事--临时工计划                                                                                      T ...

  2. 华为mate30怎么申请鸿蒙内测,华为新系统启动内测,mate30系列尝鲜,网友:羡慕...

    原标题:华为新系统启动内测,mate30系列尝鲜,网友:羡慕 一款手机是否好用,其实取决于两个方面,一个是硬件,另一个则是软件,大家在购机的时候往往最关注的就是硬件配置,因为硬件决定了手机的性能,但实 ...

  3. 吉哥系列故事——恨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 ...

  4. 吉哥系列故事——完美队形II(hdu4513+Manacher)

    吉哥系列故事--完美队形II Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 65535/32768 K (Java/Others) T ...

  5. 杭电4502吉哥系列故事——临时工计划

    吉哥系列故事--临时工计划 Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 65535/32768 K (Java/Others) To ...

  6. 杭电4535吉哥系列故事——礼尚往来

    吉哥系列故事--礼尚往来 Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 65535/32768 K (Java/Others) Tot ...

  7. HDU 4513 吉哥系列故事――完美队形II(Manacher)

    题目链接:[kuangbin带你飞]专题十六 KMP & 扩展KMP & Manacher V - 吉哥系列故事――完美队形II 题意 吉哥又想出了一个新的完美队形游戏! 假设有n个人 ...

  8. HDUOJ 4513 吉哥系列故事——完美队形II

    HDUOJ 4513 吉哥系列故事--完美队形II Problem Description 吉哥又想出了一个新的完美队形游戏! 假设有n个人按顺序站在他的面前,他们的身高分别是h[1], h[2] - ...

  9. HDU 4512 吉哥系列故事――完美队形I(最长公共上升子序列)

    吉哥系列故事--完美队形I Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 65535/32768 K (Java/Others) To ...

  10. HDU:4535 吉哥系列故事——礼尚往来(数学:错排)

    吉哥系列故事--礼尚往来 Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 65535/32768 K (Java/Others) Tot ...

最新文章

  1. android app数据库数据存放
  2. 学习Java就要掌握Java技术学习线路
  3. spring配置中使用的classpath*:是什么,和“classpath:”的区别
  4. 输入一个三位整数,求出该数字各个位的数字之和
  5. java nio 详_java nio详解
  6. redis中数据类型的使用,并发问题,list重复插入问题,redis使用实例-简单消息队列和排名统计
  7. 软件项目管理(学习笔记)
  8. vue实现pdf打印预览
  9. python数据挖掘14讲_python/pandas数据挖掘(十四)-groupby,聚合,分组级运算
  10. unity 动画控制器
  11. 如何删除电脑浏览记录
  12. 共享单车骑行数据分析数据来源
  13. Mozilla CEO和Firefox OS联合创始人Andreas Gal离职创业
  14. 什么是脏读?不可重复读?幻读?如何解决?
  15. java Date与 double 互转
  16. Spring是什么,为什么要学Spring
  17. 担当力2:担责七步骤和担当力
  18. 11 《痛苦与狂喜:米开朗基罗传》-豆瓣评分8.9
  19. 毕业设计-基于大数据技术的旅游推荐系统-python
  20. 返回code400,报错Required request body is missing

热门文章

  1. ANE总结(Android+iPhone)
  2. Linux的基础文件操作1
  3. LeetCode:714. 买卖股票的最佳时机含手续费(python)
  4. [CF1504E]Travelling Salesman Problem
  5. java简易计算器报告_JAVA实训报告简易计算器.doc
  6. postgresql12的同步流复制搭建及主库hang问题处理和分析
  7. activiti之奇淫技巧一(自动完成首个任务)
  8. Matplotlib直方图
  9. jupyter notebook不显示table of contents
  10. 2021_WSDM_Pre-Training Graph Neural Networks for Cold-Start Users and Items Representation