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

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=;
const int mod=; 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=;
memset(S,,sizeof(S));
memset(Sx,,sizeof(Sx));
memset(Sbx,,sizeof(Sbx));
memset(Sxbx,,sizeof(Sxbx)); for(int i=rqy;i<=n;i+=)
{
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=;i<=n;i++)
scanf("%d",&tong[i].b );
for(int i=;i<=n;i++)
scanf("%d",&tong[i].a ); caozuo();
caozuo();
caozuo(); while(ans<)
{
ans+=mod;
} printf("%ld",ans%mod); return ;
}

 题目链接

P2671 求和    

AC的关键    疯狂mod

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

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

T2695 桶哥的问题——吃桶的更多相关文章

  1. 【桶哥的问题——吃桶-简化版】【洛谷p2671】求和

    求和=>[链接] 题目相较起_rqy出的要简单很多,来自noip普及组2015 化简这个式子:x+z=2y,故x与z mod 2同余,因此和桶哥的问题——吃桶一样的思路就可以做出来啦qwq: # ...

  2. 校内题目T2695 桶哥的问题——吃桶

    同T2一样外校蒟蒻可能没看过: 题目描述: 题目背景 @桶哥 桶哥的桶没有送完. 题目描述 桶哥的桶没有送完,他还有n个桶.他决定把这些桶吃掉.他的每一个桶两个属性:种类aia_iai​和美味值bib ...

  3. 【洛谷T2695 桶哥的问题——吃桶】

    这是我们团队的一个题目(就是一个_rqy说很好写的题QwQ) 题目背景 @桶哥 这个题目的思路很玄学(性感_rqy在线讲解) 60 Pts 对于前面的六十分,好像很好拿,单纯的打一个模拟 唯一需要注意 ...

  4. T2695 桶哥的问题——吃桶 题解

    校内测试 ------T3 对于这个题,首先想到的应该就是暴力枚举了吧,看看数据范围,60就是白送的啦!(但是我也不知道怎么才20分qwq) 思路分析: 这个题要你求所有套餐的总价值,先看一眼产生套餐 ...

  5. 校内题目T2691 桶哥的问题——送桶

    这是一道校内题目,但迷路的蒟蒻们同样被欢迎来此学习QWQ 题目描述: 题目背景 @桶哥本校——皎月pks大佬OrzOrz 买完了桶,桶哥要去送桶. 题目描述 桶哥买了nn个桶, 他要将这些桶送去nn个 ...

  6. T2695 桶哥的问题——送桶 题解

    校内测试 ------T2 看完这个题,就觉得和贪心那一块的任务调度很像,于是思路就是贪心啦! 蒟蒻的我,也就只能想到用贪心了,但是不知道怎么用qwq 这是我考试当时的思路,数据水骗了80分qwq: ...

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

    这个题其实不难,就是按照结束时候的顺序从大到小走一遍,能送的就送,如果区间不重合就更新一下 代码: #include<iostream> #include<cstdio> #i ...

  8. 洛谷 T2691 桶哥的问题——送桶

    嗯... 题目链接:https://www.luogu.org/problem/T2691 这道题有一点贪心的思想吧...并且思路与题目是倒着来的(貌似这种思路已经很常见的... 先举个栗子: 引出思 ...

  9. 【校内test】桶哥的问题

    (以上题目出自_rqy两年前) #A:桶哥的问题——买桶[链接] [题目描述] 桶哥要买一些全家桶.他有a元钱,而每个桶要花b元钱.他能不能买到c个桶? [输入格式] 一行三个整数a, b, c [输 ...

随机推荐

  1. ECharts模拟百度迁徙实例

    本实例原始信息: 作者:anix 演示地址:Echarts模拟迁徙 源码地址:GitHub-ananix-qianxi 前言 "百度地图春节人口迁徙大数据"(简称"百度迁 ...

  2. 腾讯地图JSAPI开发demo 定位,查询

    1.IP定位切换 2.点击坐标获取地点 3.查询地点切换坐标 <!DOCTYPE html> <html> <head> <meta http-equiv=& ...

  3. LVS DR模型RS端修改配置脚本

    #!/bin/bash vip=x.x.x.x in start) > /proc/sys/net/ipv4/conf/all/arp_ignore > /proc/sys/net/ipv ...

  4. Delphi Opendialog组件

  5. nginx反向代理实现后端web的读写分离

    1.环境 角色 ip 主机名 负载均衡节点 10.0.0.11 nginx-lb01 可读写web01节点 10.0.0.12 nginx-web01 只读web02节点 10.0.0.13 ngin ...

  6. traceback:让你更加灵活地处理python的异常

    异常 异常在python中是屡见不鲜了,程序在执行到某一行代码时,发现有问题,比如数组索引越界,变量没有定义啊等等,此时就会抛出异常 捕获异常 在python,一般都是使用try···except来对 ...

  7. or/in/union与索引优化

    假设订单业务表结构为: order(oid, date, uid, status, money, time, …) 其中: oid,订单ID,主键 date,下单日期,有普通索引,管理后台经常按照da ...

  8. 从subversion开始(svn安装配置全过程(+全套安装文件与配置文件))…..

    从subversion开始(svn安装配置全过程(+全套安装文件与配置文件))-.. 博客分类: 工具使用 SVNsubversion配置管理Apache应用服务器  </div> 花了一 ...

  9. RE 逆向工程初学者指南:方法和工具

    简评: RE 两种分析,静态.动态.好好分析静态因为能够解决 70 % 的问题.介绍了一些工具和方法.Enjoy yourself. 最近几天,我决定试水逆向工程,即使在计算机和编程相关领域有一定的基 ...

  10. 【小知识】比较 x^y 和 y^x 的大小

    往前翻几个编号相邻的题目翻到了这么一道题,感觉很好奇就做了一下 (upd:我下午问了下出题人做法,他就把题隐藏了……这不太友好啊……所以我补一下题意:) 题意 给你两个整数 $x$ 和 $y$,求 $ ...