[计数 DP]Atcoder AGC001 E. BBQ Hard

2018.10.25 atcoder Leftmost Ball(计数dp+组合数学) 传送门 dp妙题啊。 我认为DZYODZYODZYO已经说的很好了。 强制规定球的排序方式。 然后就变成了一个求拓扑序数量的问题。 代码: #include<bits/stdc++.h> using namespace std; inline int read(){ int ans=0,w=1; char ch=getchar(); while(!isdigit(ch)){if(... 阅读详情

答案是求

∑i≠j(ai+aj+bi+bjai+aj)

这就相当于从平面内的 (−ai,−bi) 走到 (aj,bj) 的方案数

把点放到平面上,DP就好了

#include <cstdio>
#include <iostream>
#include <algorithm>

using namespace std;

const int N=8010,P=1e9+7;

int n,a[200010],b[200010],fac[N],inv[N];
int f[N][N];

inline int &F(int x,int y){ return f[x+2005][y+2005]; }

inline void Pre(){
  fac[0]=1; for(int i=1;i<=8000;i++) fac[i]=1LL*fac[i-1]*i%P;
  inv[1]=1; for(int i=2;i<=8000;i++) inv[i]=1LL*(P-P/i)*inv[P%i]%P;
  inv[0]=1; for(int i=1;i<=8000;i++) inv[i]=1LL*inv[i]*inv[i-1]%P;
}

inline int C(int x,int y){
  return 1LL*fac[x]*inv[y]%P*inv[x-y]%P;
}

int main(){
  freopen("1.in","r",stdin);
  freopen("1.out","w",stdout);
  scanf("%d",&n); Pre();
  for(int i=1;i<=n;i++)
    scanf("%d%d",&a[i],&b[i]),F(-a[i],-b[i])++;
  for(int i=-2000;i<=2000;i++)
    for(int j=-2000;j<=2000;j++)
      F(i,j)=((long long)F(i,j)+F(i-1,j)+F(i,j-1))%P;
  int ans=0;
  for(int i=1;i<=n;i++) ans=((long long)ans+F(a[i],b[i])-C(a[i]+a[i]+b[i]+b[i],b[i]+b[i]))%P;
  ans=1LL*ans*(P+1>>1)%P;
  printf("%d\n",(ans+P)%P);
  return 0;
}
美团mtgsig 3.1.0算法还原:从加密入口到d1生成的完整链路拆解 本文详细拆解了美团mtgsig 3.1.0签名算法的完整逆向过程。通过定位加密入口函数eH,理清a6、a5、a8到d1的生成依赖链,并运用插桩技术,在JSVMP混淆环境下逐步还原了核心参数的生成逻辑,为逆向工程实践提供了清晰的纯算还原方法论。 阅读详情

相关推荐

AM243x多核MCU启动流程解析与OSPI Flash烧录实战

嵌入式系统开发中,引导加载器是芯片上电后执行的第一段软件,负责初始化硬件、加载操作系统或应用程序。其工作原理通常遵循多级引导链,从ROM固件到用户可定制的二级引导程序,逐级建立完整的软件运行环境。这一机制的技术价值在于实现可靠的系统启动、支持安全校验,并为多核异构架构提供协同基础。在应用场景上,引导加载器广泛应用于工业控制、汽车电子和物联网设备,确保设备能从非易失性存储器中自主启动。本文聚焦于TI AM243x这类高性能多核MCU,深入剖析其包含RBL和SBL在内的三级启动流程,并详细演示如何通过UART接

weixin_28703451的博客 582

BBQ Hard dp + 组合数学 + 建模

传送门 文章目录题意:思路: 题意: 有nnn组物品,每组有aia_iai​个肉和bib_ibi​个菜,你可以选择两组物品让后将肉和菜其串在一根串上,问有多少种不同的串法。 两种方法不同当且仅当选的物品不同或者串的顺序存在至少一个位置一个方法串的肉,另一个串的菜。 n≤2e5,ai,bi≤2e3n\le2e5,a_i,b_i\le2e3n≤2e5,ai​,bi​≤2e3 思路: 一个比较巧妙的建模题。 考虑暴力做法,显然答案为∑i=1n∑j=i+1n(ai+bi+aj+bjai+aj)\sum_{i=1}^

m0_51068403的博客 207

《涨知识啦29》-DBR的工作原理及其在VCSEL中的作用

分布式布拉格(Distributed Bragg Reflection,简称DBR)反射镜是垂直腔面发射激光器(Vertical-Cavity Surface-Emitting Laser,简称VCSEL)的重要组成部分。典型的DBR反射镜是由1/4ni波长厚度的高折射率和低折射率材料交替组成(ni是该层的折射率)。其反射率取决于组成对数、边界条件以及折射率差。 图1 布拉格反射镜的工作原理 DBR反射镜的工作原理如图1所示。根据反射原理,当光从光疏介质n1射向光密介质n2(折射率n2>n1)时,反

simucal的博客 7983

Atcoder AGC031B Reversi (DP计数)

Atcoder AGC031B Reversi (DP计数) 简单的计数题。(总算做出一道AGC的B题了,然而这场比赛我忘记打了233333) 题目链接: https://atcoder.jp/contests/agc031/tasks/agc031_b 题意: 有一个长度为\(N\)的颜色序列,第\(i\)个位置初始颜色为\(a_i\), 可以执行若干次操作,每次...

suncongbo's blog 386

如何用Hugo Stack主题打造极简技术博客?3个必改配置与5个高级美化技巧

本文详细解析了如何深度定制Hugo Stack主题,打造个性化技术博客。文章提供了3个必改配置与5个高级美化技巧,涵盖字体美学、布局重构、代码块视觉强化及细节打磨,帮助开发者超越基础部署,实现从功能到美学的进阶,提升博客质感与用户体验。

carrot的博客 568

深入瑞芯微ISP生态:手把手配置RK3588上的RKAIQ Server并与Windows端RKISP Tuner联调

本文详细介绍了如何在RK3588平台上配置RKAIQ Server并与Windows端的RKISP Tuner进行联调,以实现高效的ISP调优。从环境准备、服务部署到实战调试,涵盖了IMX415相机适配等关键步骤,帮助开发者快速掌握瑞芯微ISP生态的核心技术。

weixin_32447969的博客 670

【AtCoder1983】BBQ Hard (组合数+巧妙模型转化)

半题解 输入A[i],B[i],求∑i=1N∑j=i+1NCAi+Aj+Bi+BjAi+Bi\sum_{i=1}^N\sum_{j=i+1}^N C_{A_i+A_j+B_i+B_j}^{A_i+B_i}i=1∑N​j=i+1∑N​CAi​+Aj​+Bi​+Bj​Ai​+Bi​​ 题解 CAi+Aj+Bi+BjAi+BiC_{A_i+A_j+B_i+B_j}^{A_i+B_i}CAi​+Aj​+B...

CaptainChen的博客 423

系统盘被 1Panel 撑爆了?一键脚本 3 分钟搞定无损迁移!(1Panel如何快速无损的修改安装目录)

很多用户因默认安装导致 1Panel 面板占满系统盘 😱,本文详解了为何常规快照迁移会失效,并提供了通过**一键自动化脚本**实现无损迁移的完美方案 🛠️。无论你是 NAS 用户还是服务器管理员,都能找到安全扩容的最佳实践。

XiaoqiangClub的博客 1279

[AGC001E]BBQ Hard-组合数学

BBQ HardProblem Statement Snuke is having another barbeque party.This time, he will make one serving of Skewer Meal.He has a stock of N Skewer Meal Packs. The i-th Skewer Meal Pack contains one skewer

「嫌われ者のフィロソフィ」 1390

Java与OSG的梦幻联动:深入编译OpenSceneGraph的Java JNI桥梁,开启3D视觉盛宴的奇幻之旅

🔥关注墨瑾轩,带你探索编程的奥秘!🚀🔥超萌技术攻略,轻松晋级编程高手🚀🔥技术宝库已备好,就等你来挖掘🚀🔥订阅墨瑾轩,智趣学习不孤单🚀🔥即刻启航,编程之旅更有趣🚀在编译OpenSceneGraph (OSG) 的Java版本时,首先需要了解OSG本身是一个主要用于3D图形和视觉仿真的开源库,它主要支持C++。然而,OSG 也支持通过JNI(Java Native Interface)与Java集成,这允许Java程序调用OSG的C++库。

java专栏 869

激光雷达点云异常现象详解:鬼影、高反膨胀与拖点

现象核心外观主要成因核心硬件对策核心算法对策鬼影位置错误,出现"复制"的物体镜面反射/光学元件间杂散光物理光阑、抗反射涂层多帧时序一致性检验、反射率逻辑判断膨胀尺寸变大,轮廓呈毛刺状信号饱和、像素/通道串扰可变增益控制、随机编码序列强度阈值滤波、几何轮廓拟合(剪裁)拖点边缘粘连,出现"阶梯"或"连线"光斑跨立边缘、双回波融合小光斑光学设计、多回波支持邻域深度突变检测、波形脉宽分析这些异常现象是当前激光雷达感知中的核心难点,通常需要硬件物理特性优化与上层感知算法。

Fun_LiDAR的博客 303

Atcoder DP Contest Y题解

这是一道比较典型的 dp 结合组合数的题目。 atcoder 题目传送门 & 洛谷题目传送门 Description 有一个 H×WH\times WH×W 的网格,有 nnn 个障碍物,坐标分别为 (ri,ci)(r_i,c_i)(ri​,ci​)。求从 (1,1)(1,1)(1,1) 走到 (n,m)(n,m)(n,m),不经过障碍物的方案数。答案对 109+710^9+7109+7 取模。 2≤H,W≤1052\le H,W\le 10^52≤H,W≤105 1≤n≤30001\le

FelFa_1414666的博客 295

【人工智能】Cursor模型被封?两步教你破解

Cursor模型全线被禁,主流模型如Claude、GPT-4无法访问,仅剩Deepseek等基础模型可用。官方证实限制源于上游API区域政策,提供三种"无效"解决方案引发用户不满。社区发现有效解决方式:需同时开启全局代理和将Cursor网络设置改为HTTP/1.1协议,详细步骤包括修改用户设置和完全重启程序。另有SOCKS5代理配置方案供高级用户选择。技术原理推测HTTP/1.1可绕过区域检测。用户面临继续使用或转投其他工具的选择,社区交流受限但仍有讨论。

奶爸的编程之路,也就一周冷个三天 2191

AtCoder AGC001E BBQ Hard (DP、组合计数)

题目链接: https://atcoder.jp/contests/agc001/tasks/agc001_e 题解: 求\(\sum^n_{i=1}\sum^n_{j=i+1} {A_i+A_j+B_i+B_j\choose A_i+A_j}\) 虽然\(n\)很大,但是\(A_i,B_i\le 2000\), 所以我们可以考虑一个权值平方的做法 观察到那个式子就等于从\((-A_j,-B_j)...

suncongbo's blog 298

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

【AtCoder】【DP】【组合数学】BBQ Hard(AGC001)

题意: 有n个包,一个包里面有一根竹签,上面有编号i,还有Ai个A物品,Bi个B物品。现在选择两个包,用两个竹签将A物品和B物品串起来。两种方法是不一样的,当且仅当选择的竹签的编号不同(忽略顺序)或者A,B物品的摆放顺序不同(可重复排列)。 下面是N=3的情况: 数据范围: 2≦N≦200,000 1≦Ai≦2000,1≦Bi≦2000 思路: 考试的时候只会骗…首先,很容易想到一个O(n^2)...

G20202502的博客 383

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

AtCoder Beginner Contest 220 FG operation(简单dp)

根据以上操作,求最终剩下的数为【0,9】的方案数 emmm 我们定义dp[i][0–9] 设dp[i][now]表示第i次操作,操作完后队头元素为now的方案数,那么我们枚举上一个位置的所有可能情况[0,9],得到:dp[i][now]=dp[i][now]+dp[i−1][j] int n; ll a[N]; ll dp[N][10]; int main() { scanf("%d",&n); for(int i=1;i<=n;++i){ scanf(.

weixin_45948940的博客 223

AtCoder Grand Contest 017F Zigzag 状压dp

Description 有一个边长为n的正三角形,定义一条路径为从(1,1)出发,每次向左下或向右下走一格走n-1次到底 问有多少种方案使得可以选出m条不相同的路径,对于任意的i,保证第i条不在第i-1条的左侧 同时给出m个限制形如(x,y,z),表示第x条路径的第y步一定要往z这个方向走 n,m≤20n,m\le20n,m≤20 Solution 注意到起点是一样的,那么我们可以用一个n-1...

olahiuj的博客 281

AT1983 [AGC001E] BBQ Hard

這遍題解需要用到逆元,學習這個新知識用了兩三個小時。 非常有意思的一道題,可以幫助自己拓展思維。 首先,我們可以想像組合數的幾何意義。 組合數 從n + m 中選 n 個的組合數就是從(0,0)走到(n,m)座標的方案數。 題目所給的 n 是 ai + bi,m 是 aj + bj。 所以暴力的做法是,首先求得每一個點的組合數,然後求和。 但是對於每一個點的組合數他顯然是要(n)^2 的處理時間,因為 n m 都是和i j 有關的,顯然是過不了的。 那麼我現在考慮把上面的矩形平移到 ..

weixin_58286631的博客 440

【AtCoder】AGC022 F - Leftmost Ball 计数DP

【题目】F - Leftmost Ball 【题意】给定n种颜色的球各k个,每次以任意顺序排列所有球并将每种颜色最左端的球染成颜色0,求有多少种不同的颜色排列。n,k<=2000。 【算法】计数DP 【题解】只看黑体字部分即可。 自己考虑了几种计数方案,都不能实现。一种从左到右,但要记录每种球剩余多少,不可行。一种从右到左枚举白球包含区间填充,但因为只看白球,每种颜色没有关键球,会有...

weixin_34356138的博客 179

[AGC001E]BBQ Hard

我最开始还以为BBQ Easy 和 BBQ Hard 是一个题...然而妹妹直接爆切。

StaroForgin的博客 331

AtCoder Beginner Contest 243 F(思维+dp计数)

abc243F

m0_53688600的博客 437

【Atcoder agc001】E - BBQ Hard

E - BBQ Hard Time limit : 2sec / Memory limit : 256MB Score : 1400 points Problem Statement Snuke is having another barbeque party. This time, he will make one serving of Skewer Meal. He has a s...

ETO的博客 504

[agc001e]BBQ hard

题目大意给你a[]和b[],权值范围在2e3内。 求∑n−1i=1∑nj=i+1Cai+ajai+aj+bi+bj\sum_{i=1}^{n-1}\sum_{j=i+1}^nC_{a_i+a_j+b_i+b_j}^{a_i+a_j}做法你考虑Cba+bC_{a+b}^b的组合意义其实是从(0,0)走到(a,b)每次只能向上和向右有多少走法。 因此这个魔幻的式子其实相当于(0,0)走到两个向量和的

不来也不去的一只失忆蝴蝶 823

atcoder agc001F Wide Swap

Description给出一个长度为n的排列p,每次操作你可以交换任意两个满足|i-j|>=k并且|pi-pj|=1的pi和pj。 求任意次操作之后所得的最小字典序的排列。 n<=5*1e5Solution感觉agc的题都是些很吼的思维+结论题啊。。。以后要多做做 这个模型感觉会很难做,我们来考虑转化一下模型。 令q[p[i]]=i,那么操作就变成了交换相邻两个差的绝对值>=k的位置。 可

时光真疯狂, 我一路执迷于匆忙. 1278
上一篇: [构造] Atcoder AGC001 D. Arrays and Palindrome
下一篇: [整体二分 并查集]Atcoder AGC002 D. Stamp Rally
LowestJN
博客等级 码龄10年 76粉丝 422原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值