description


analysis

  • 注意配出来的饮料不可以再配成其他饮料,所以肯定有\(O(n^2)\)的枚举

  • 而且可口度两两互不相同,搞得我以为这是神仙题

  • 考虑把两个试剂\([l_1,r_1],[l_2,r_2]\)合并,\([l_1+l_2,r_1+r_2]\)里的每个点都有贡献

  • 假设贡献只有\(1\),拉出来就是\(1,2,3,..,k-1,k,k,k,...,k,k-1,...,3,2,1\)

  • 注意到前面一段和后面一段是等差数列,中间全部相等,做一遍差分

  • 就会是\(0,1,1,...,1,1,0,0,...,0,-1,...,-1,-1,-1,-1\),注意最后面多出来一个\(-1\)

  • 再做差分,变成\(0,1,0,...,0,0,-1,0,...,0,-1,...,0,0,0,0,1\),最后面又多出来一个\(1\)

  • 那么对于一次贡献,相当于打上两个加两个减标记,最后两次前缀和还原原数组


code

#pragma GCC optimize("O3")
#pragma G++ optimize("O3")
#include<stdio.h>
#include<string.h>
#include<algorithm>
#define MAXN 5005
#define MAX 20000005
#define ha 998244353
#define ll long long
#define reg register ll
#define fo(i,a,b) for (reg i=a;i<=b;++i)
#define fd(i,a,b) for (reg i=a;i>=b;--i) using namespace std; ll v[MAXN],l[MAXN],r[MAXN];
ll a[MAX];
ll n,m,mx; inline ll read()
{
ll x=0,f=1;char ch=getchar();
while (ch<'0' || '9'<ch){if (ch=='-')f=-1;ch=getchar();}
while ('0'<=ch && ch<='9')x=x*10+ch-'0',ch=getchar();
return x*f;
}
inline void swap(ll &x,ll &y){ll z=x;x=y,y=z;}
int main()
{
//freopen("T1.in","r",stdin);
freopen("a.in","r",stdin);
freopen("a.out","w",stdout);
n=read(),m=read();
fo(i,1,n)v[i]=read(),l[i]=read(),mx=max(mx,r[i]=read());
fo(i,1,n-1)fo(j,i+1,n)
{
ll lx=l[i],rx=r[i],ly=l[j],ry=r[j],k,kk,tmp=v[i]*v[j]%ha;
(a[lx+ly]+=tmp)%=ha,(a[lx+ry+1]-=tmp)%=ha,(a[rx+ly+1]-=tmp)%=ha,(a[rx+ry+2]+=tmp)%=ha;
}
fo(i,1,2*mx+1)(a[i]+=a[i-1])%=ha;
fo(i,1,2*mx+1)(a[i]+=a[i-1])%=ha;
while (m--)printf("%lld\n",(a[read()]+ha)%ha);
return 0;
}

最新文章

  1. for循环j = j++ 和 j = ++j
  2. xml解析方法总结
  3. 【转】Kylin的Hierarchies,Derived维度方面配置优化
  4. jquery ajax 实例
  5. 【ZOJ】3609 Modular Inverse
  6. Unix/Linux 脚本中 “set -e” 的作用
  7. Jasperreports以及iReport4.5报表PDF导出字体完美解决方案
  8. generator生成器iterator遍历器和yield
  9. 总结:如何驱动DS18B20温度传感器
  10. libevent 实现的socket 通信 server以及解决找不到动态库的方法
  11. vue的父子组建之间的通信(-),基于props和$emit之间的传递
  12. 十九、State 状态模式
  13. 新浪股票接口AndroidSDK
  14. Linux-(ps,grep)
  15. Qt 状态栏设置
  16. 模仿VIMD的模式的简化代码示例
  17. Linux route命令
  18. A problem has been detected and windows has been shut down to prevent damage
  19. springmvc ModelAndView
  20. VBS虚拟键盘十六进制列表

热门文章

  1. 二、springcloud微服务测试环境搭建
  2. 从内部重启python脚本
  3. 8、如何实现可迭代对象和迭代器对象 9、如何使用生成器函数实现可迭代对象 10、如何进行反向迭代以及如何实现反向迭代 11、如何对迭代器做切片操作 12、如何在一个for语句中迭代多个可迭代对象
  4. Mybatis Generator 安装(idea+maven)
  5. docker commit为什么不适合生成镜像?
  6. mysql服务命令行操作
  7. 【NOI2019模拟2019.7.1】三格骨牌(轮廓线dp转杨图上钩子定理)
  8. 矩阵乘法分配律+bitset优化——hdu4920
  9. NX二次开发-UFUN获取点在面上的向量方向UF_MODL_ask_face_props【转载】
  10. vs2013代码高亮显示失效