XV Open Cup named after E.V. Pankratiev Stage 6, Grand Prix of Japan Problem J. Hyperrectangle

题目大意:

给出一个d维矩形,第i维的范围是[0,li]. 求满足x1+x2+...xds 的点构成的单纯形体积。

d,li300

 

题解:

watashi学长的blog传送门

给出了求a1x1+a2x2+...adxdb的通用做法。答案就是一个神奇的式子1n!IS(1)|I|max{0,biIaili}d 

背包一下分别求出取了奇数个和偶数个li的和的方案数即可。

 

代码:

复制代码
 1 #include <bits/stdc++.h>
 2 using namespace std;
 3 
 4 #define N 310
 5 typedef long long LL;
 6 const int mod = 1e9 + 7; 
 7 const double EPS = 1e-12;
 8 
 9 
10 int a[N]; 
11 int f[2][N * N], g[2][N * N];
12 
13 int pow_mod(int x, int p)
14 {
15      int res = 1;
16     for (; p; p >>= 1)
17     {
18         if (p & 1) res = 1LL * res * x % mod;
19         x = 1LL * x * x % mod;
20     }
21     return res;
22 }
23 
24 int main()
25 { 
26     //freopen("in.txt", "r", stdin);
27        
28        int n, s;
29        cin >> n;
30        for (int i = 1; i <= n; ++i)
31            cin >> a[i];
32     cin >> s;
33     
34     int o = 0;
35     f[0][0] = 1;
36     for (int i = 1; i <= n; ++i)
37     {
38         o ^= 1;
39         memcpy(g[o], g[o ^ 1], sizeof(g[o]));
40         memcpy(f[o], f[o ^ 1], sizeof(f[o]));
41         for (int j = s; j >= a[i]; --j)
42         {
43             f[o][j] += g[o ^ 1][j - a[i]];
44             if (f[o][j] >= mod) f[o][j] -= mod;
45             
46             g[o][j] += f[o ^ 1][j - a[i]];
47             if (g[o][j] >= mod) g[o][j] -= mod;
48         }
49     }
50 
51     int ans = 0;
52     for (int i = 0; i <= s; ++i)
53     {
54         ans += 1LL * pow_mod(s - i, n) * f[o][i] % mod;
55         ans -= 1LL * pow_mod(s - i, n) * g[o][i] % mod;
56         if (ans >= mod) ans -= mod;
57         if (ans < 0) ans += mod;
58     }
59     printf("%d\n", ans);
60     return 0;
61 }
复制代码

 

posted @   lzw4896s  阅读(519)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
历史上的今天:
2014-08-18 MM 不哭 (tyvj 1097)
2014-08-18 常州培训 day7 解题报告
点击右上角即可分享
微信分享提示