~~~~~我~是~真的~忍不了~这个~取模~的~锅~了~~~~~

T2695 桶哥的问题——吃桶

前传

1.T2686 桶哥的问题——买桶

这题真的hin简单,真的

2.T2691 桶哥的问题——送桶

前言

这是一道看上去不是毒瘤但实际上有那么一seisei毒瘤的题目

在我多次提交代码仍然屡教不改最后痛改前非的惨痛经历下,总结出以下#¥@¥#%:

1.可以用结构体存 a , b   QAQ实锤啦是取模的锅

不用结构体的话那就换成两个一维数组  a[  ]  b[  ]

2.多取模,越多越好,能往哪里mod就往哪里mod

(一开始mod少了,然后就Wa了)

 解析

1.         把这个式子化简一下

z - x = 3 y

也就是说明 z,x 属于同一个mod(3)的剩余类

如果 z 是 15 的话,那么 x 可以是 3   6   9   12         (%3……0)

如果 z 是 16 的话,那么 x 可以是 1   4   7   10         (%3…… 1)

如果 z 是 17 的话,那么 x 可以是 2   5   8   11         (%3…… 2)

所以我们就可以枚举 z ,那么符合条件的 x 就是和它同属一个剩余类并且的啦

2.       我们把这个式子拆一下

(  x + z  )·(  bx - bz  )

=  x·bx  +  z·bx  -  x·bz  -  z·bz

所以说,对于每一个 z ,它可以有很多个对应的 x ,虽然 x ,bx  不确定,但是 z , b是确定的

也就是说对于每一个 z 都可以得到以下这个式子

∑( x·bx ) +  z·∑bx  -  b∑x  -  z·bz·(z的个数)

从前往后枚举 z ,对于每一个 z ,可以满足这个 z 要求的 x 一定也可以满足下一个和这个 z 相类似的 z ,所以说我们就开数组统计一下

S[  ]       到当前为止的满足 z 的 x 的数目

Sx[  ]     到当前为止的满足 z 的 x 的和

Sbx[  ]   到当前为止的满足 z 的 bx 的和

Sxbx[  ]  到当前为止的满足 z 的 x*bx 的和

每次先统计,再更新数组

对于代码当中呢,是枚举三种剩余类,也就是  

每次操作之前都要初始化一下

然后开始 for 循环枚举 z ,计算 

然后更新数组,按照 a 的种类更新到数组中的不同地方,数组中每一个小格子代表一个种类的桶

注意保证答案不为负数 貌似取模就已经保证了

最后输出答案即可

代码

#include<bits/stdc++.h>using namespace std;const int maxn=100001;
const int mod=10007;int n,m;
long long ans;
int S[maxn],Sx[maxn],Sbx[maxn],Sxbx[maxn];struct RQY
{int a,b;
}tong[maxn];void caozuo(int rqy)
{long long hxbx,hzbx,hxbz,hzbz;int num=0;memset(S,0,sizeof(S));memset(Sx,0,sizeof(Sx));memset(Sbx,0,sizeof(Sbx));memset(Sxbx,0,sizeof(Sxbx));for(int i=rqy;i<=n;i+=3){num=tong[i].a ;hxbx=Sxbx[num]%mod;hzbx=i%mod*Sbx[num]%mod;hxbz=tong[i].b%mod *Sx[num]%mod;hzbz=i%mod*tong[i].b %mod *S[num]%mod;ans=(ans+hxbx+hzbx-hxbz-hzbz)%mod;S[num]++;Sx[num]=(Sx[num]+i%mod)%mod;Sbx[num]=(Sbx[num]+tong[i].b%mod)%mod ;Sxbx[num]=(Sxbx[num]+i%mod*tong[i].b%mod)%mod ;}}int main()
{   scanf("%d%d",&n,&m);for(int i=1;i<=n;i++)scanf("%d",&tong[i].b );for(int i=1;i<=n;i++)scanf("%d",&tong[i].a );caozuo(1);caozuo(2);caozuo(3);while(ans<0){ans+=mod;}printf("%ld",ans%mod);return 0;
}

 题目链接

P2671 求和    

AC的关键    疯狂mod

这个题要注意是枚举2的剩余类啦

~~~~~~QWQ写完之后我发现我要好好组织语言  mod一mod ~~~~~~

转载于:https://www.cnblogs.com/xiaoyezi-wink/p/10946228.html

T2695 桶哥的问题——吃桶相关推荐

  1. 有1000桶酒,其中1桶有毒.而一旦吃了,毒性会在1周后发作.现在我们用小老鼠做实验,要在1周内找出那桶毒酒,问最少需要多少老鼠.

    有1000桶酒,其中1桶有毒.而一旦吃了,毒性会在1周后发作.现在我们用小老鼠做实验,要在1周内找出那桶毒酒,问最少需要多少老鼠. 很老的笔试题了. 答案是10只. 把十只老鼠看成二进制的位数,把酒桶 ...

  2. Es Bucket聚合(桶聚合) 第一篇(常用桶聚合一览)

    本篇将开始介绍Elasticsearch Bucket聚合(桶聚合). Buket Aggregations(桶聚合)不像metrics Aggregations(度量聚合)那样计算字段上的度量,而是 ...

  3. 1000桶酒中寻找一桶毒酒算法

    有1000桶酒,其中1桶有毒.而一旦吃了,毒性会在1周后发作. 现在我们用小老鼠做实验,要在1周后找出那桶毒酒,问最少需要多少老鼠, 如何检测(老鼠的使用量越少越好,注意,毒性1周后才会发作,而且一周 ...

  4. java的位桶是什么_Java关于桶排序的知识点总结

    前言:Java数据结构与算法专题会不定时更新,欢迎各位读者监督.本文从最简单的一个排序算法--桶排序开始,分析桶排序的实现思路,代码实现,性能特点以及适用场景. 0.其他排序算法索引 1.桶排序思想 ...

  5. 【逻辑】500桶酒,其中1桶是毒酒,找毒酒

    题目 500桶酒,其中1桶是毒酒:48小时后要举行酒会:毒酒喝下去会在之后的第23-24小时内毒死人:国王决定用囚犯来试酒,不介意囚犯死多少,只要求用最少的囚犯来测试出哪一桶是毒酒,问需要最少需要多少 ...

  6. Spring全家桶第一篇--认识全家桶

    Spring全家桶第一篇--认识全家桶 前言 什么是SPRING全家桶 前言 打算更新一下这两年来接触到的SPRING WEB方面的知识,此篇开搞.不定时更新 什么是SPRING全家桶 官网:http ...

  7. 1000桶酒中含两桶毒酒问题

    链接毒酒问题中给出如下问题: 国王为10天后的生日宴会准备了1000桶酒,不幸的是,其中两桶被下了毒.为了确定两桶毒酒,有人提议用死刑犯试毒.毒的潜伏期为10天.  问:至少需要多少个死刑犯才能确保找 ...

  8. c语言桶排序,排序算法之——桶排序

    这是本人的第一篇随笔,为的是分享学习经验,和大家讨论一些算法,以便取得些许进步,也是对学习的总结. 话不多说,下面我会用图文的方式向各位介绍桶排序. 1.主要思想: 桶排序的大体思路就是先将数组分到有 ...

  9. 2022年全球市场金属罐和桶和鼓和提桶总体规模、主要生产商、主要地区、产品和应用细分研究报告

    本文研究全球市场.主要地区和主要国家金属罐和桶和鼓和提桶的销量.销售收入等,同时也重点分析全球范围内主要厂商(品牌)竞争态势,金属罐和桶和鼓和提桶销量.价格.收入和市场份额等.针对过去五年(2017- ...

  10. 什么是限流?为什么会限流呢?常见的限流算法【固定窗口限流、滑动窗口限流、漏桶限流、令牌桶限流】是什么呢?

    什么是限流?为什么会限流呢?常见的限流算法[固定窗口限流.滑动窗口限流.漏桶限流.令牌桶限流]是什么呢? 什么是限流? 为什么会限流? 1. 固定窗口限流算法 1.1 什么是固定窗口限流算法 1.2 ...

最新文章

  1. linux文件类型为ext4怎么扩展,如何扩展ext4分区和文件系统?
  2. self-在类的外部给对象增加属性
  3. docker mysql 生产环境_如何部署Docker MySQL生产环境?
  4. Linux性能监测(系统监测统计命令详解)
  5. opencv 叠加文字_opencv 图像上添加文字
  6. yii 使用 有赞sdk_有赞 App 动态化配置中心实践
  7. java更改reader字体颜色,Java 修改 文件内容 and BufferedReader 乱码问题
  8. 《访问Mat图像中每个像素的值》)
  9. 覆盖率验证——代码覆盖率+功能覆盖率
  10. 士兵 POJ1723
  11. java移除字符串中的表情符
  12. Spark SQL操作多数据源
  13. elementUI 导航栏 鼠标移入改变背景色
  14. PHP模式-单例模式
  15. android开机动画 暂停,修改build.prop,停在开机画面。求大神
  16. Python第9章 类
  17. 高级软件工程师证书有用吗_bim工程师证书有用吗?bim好在哪里?
  18. 【历史上的今天】11 月 24 日:美国在线收购网景;太阳能光伏之父出生;HTML 2.0 发布
  19. 单机小游戏大本营 经典流行 百种游戏 还不赶紧收藏
  20. zoj3344 第一类斯特林数+java大数

热门文章

  1. 路由器连接路由器设置教程
  2. 前端怎么加粗字体_Variable Fonts 可变形字体
  3. 二项分布 (Binomial Distribution)
  4. matlab 平行四边形,matlab计算四边形面积
  5. android自定义四边形,以编程方式在Android中创建平行四边形绘图
  6. 身高预测和体脂判断,选择结构练习,C语言
  7. 怎么下载lce_icesword下载
  8. C语言蜗牛爬墙(个人练习)
  9. Windows画图Android版,妙笔画世界-三星手机画图应用
  10. pyecharts 大小_[pyecharts1.7] 图表基础设置:大小、背景色、配色主题等