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

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. 欧拉系统-登陆 SSH 出现 Access Denied 错误

    1./home 权限问题如果 /home 只支持 root 访问,那么不妨试一下 /tmp ,然后用 mv 命令再转移 2./etc/ssh/sshd_config 配置问题     vi  /etc ...

  2. Spring 资源加载

    pom.xml ``` org.springframework spring-core 4.3.14.RELEASE org.springframework spring-beans 4.3.16.R ...

  3. NativeScript —— 初级入门(跨平台的手机APP应用)《二》

    NativeScript项目结构 根文件夹 package.json —— 这是适用于整个应用程序的NativeScript主项目配置文件. 它基本概述了项目的基本信息和所有平台要求. 当您添加和删除 ...

  4. 配置maven的国内镜像

    pom.xml文件出现错误标记,一般是相关的maven资源没有下载完整. 1,配置maven的国内镜像,保证能够顺利下载maven中配置的资源. 在maven的配置文件  settings.xml  ...

  5. 正确的安装和使用nvm(mac)<转>

    前言 目前主流的node版本管理工具有两种,nvm和n.两者差异挺大的,具体分析可以参考一下淘宝FED团队的一篇文章: 管理 node 版本,选择 nvm 还是 n? 总的来说,nvm有点类似于 Py ...

  6. linux库(程序)与包名联系

    一般地,dev为相关开发库包. curses--cursor optimization光标优化--libncurses5-dev 现在常用的是new curses(ncurses). 在ubuntu中 ...

  7. 华为ensp问题:云映射本地网卡,直连路由器可以ping通,pc却不行?

    拓扑图:cloud 云映射本机物理网卡:192.168.56.1     R1可以Ping通,所有Pc都不行,路由表也存在路由信息,不知道什么问题?

  8. 一个微信小程序跳转到另一个微信小程序

    简单来说分两步走: 1.配置项目根目录的 app.json 文件中的 navigateToMiniProgramAppIdList { "pages": [ "pages ...

  9. 在服务端中,读取properties资源文件中的数据

    1.获取到资源的路径 2.读取数据 //properties文件对象 Properties properties = new Properties(); //通过HttpServletRequest ...

  10. easyui 动态添加组件 要重新渲染

    做项目时动态添加组件是常有的事,easyui动态添加组件时样式会失效,这是因为这个组件没有经过 easyui的解析器解析, 比如:   <pre name="code" cl ...