NOIP2011 提高组 Day2
2017-04-12 18:00
302 查看
自测时间:2017.4.12 8:15——11:45
实际得分:100+0+0=100
期望得分:100+100+0=260
T2 符合要求的总价值*符合要求的总个数
写成:符合要求的总价值*区间总个数
T3 正解贪心,DP式子退错了
http://cogs.pro/cogs/page/page.php?aid=16
T1 计算系数
时间限制:1 s 内存限制:128 MB
【问题描述】
给定一个多项式 (ax+by)^k ,请求出多项式展开后 x^n*y^m 项的系数。
【输入】
输入文件名为 factor.in。
共一行,包含 5 个整数,分别为 a,b,k,n,m,每两个整数之间用一个空格隔开。
【输出】
输出文件名为 factor.out。
输出共 1 行,包含一个整数,表示所求的系数,这个系数可能很大,输出对 10007 取模后的结果。
【输入输出样例】
factor.in
1 1 3 1 2
factor.out
3
【数据范围】
对于 30%的数据,有 0≤k≤10;
对于 50%的数据,有 a=1,b=1;
对于 100%的数据,有 0≤k≤1,000,0≤n,m≤k,且n+m=k,0≤a,b≤1,000,000。
递推杨辉三角
按x的指数升序排列,杨辉三角中第k+1行,m+1列为 (ax+by)^k 展开后 x^n*y^m项的系数
ans=f[k+1][m+1]*a^n*b^m
View Code
实际得分:100+0+0=100
期望得分:100+100+0=260
T2 符合要求的总价值*符合要求的总个数
写成:符合要求的总价值*区间总个数
T3 正解贪心,DP式子退错了
http://cogs.pro/cogs/page/page.php?aid=16
T1 计算系数
时间限制:1 s 内存限制:128 MB
【问题描述】
给定一个多项式 (ax+by)^k ,请求出多项式展开后 x^n*y^m 项的系数。
【输入】
输入文件名为 factor.in。
共一行,包含 5 个整数,分别为 a,b,k,n,m,每两个整数之间用一个空格隔开。
【输出】
输出文件名为 factor.out。
输出共 1 行,包含一个整数,表示所求的系数,这个系数可能很大,输出对 10007 取模后的结果。
【输入输出样例】
factor.in
1 1 3 1 2
factor.out
3
【数据范围】
对于 30%的数据,有 0≤k≤10;
对于 50%的数据,有 a=1,b=1;
对于 100%的数据,有 0≤k≤1,000,0≤n,m≤k,且n+m=k,0≤a,b≤1,000,000。
递推杨辉三角
按x的指数升序排列,杨辉三角中第k+1行,m+1列为 (ax+by)^k 展开后 x^n*y^m项的系数
ans=f[k+1][m+1]*a^n*b^m
#include<cstdio> #include<cstring> #include<algorithm> using namespace std; int n,m,k; int t[10001],a[10001],b[10001],d[1001],data[1001]; int gett[1001],last[1001],sum[1001],g[1001],ans; int main() { /*freopen("bus.in","r",stdin); freopen("bus.out","w",stdout);*/ scanf("%d%d%d",&n,&m,&k); for(int i=2;i<=n;i++) scanf("%d",&d[i]); for(int i=1;i<=m;i++) { scanf("%d%d%d",&t[i],&a[i],&b[i]); last[a[i]]=max(last[a[i]],t[i]); sum[b[i]]++;; } for(int i=2;i<=n;i++) gett[i]=max(gett[i-1],last[i-1])+d[i]; //g =n; //for(int i=n-1;i>1;i--) g[i]= gett[i]>last[i] ? g[i+1] : i; //for(int i=1;i<=n;i++) sum[i]+=sum[i-1];sum[n+1]=sum +(sum -sum[n-1]); for(int i=1;i<=m;i++) ans+=gett[b[i]]-t[i]; while(k--) { int maxn=0,tmp=0; for(int i=n;i>1;i--) { data[i]=sum[i]; if(last[i]<gett[i]) data[i]+=data[i+1]; } for(int i=2;i<=n;i++) //if(maxn<sum[g[i]+1]-sum[i]&&d[i]>0) if(maxn<data[i]&&d[i]>0) { //maxn=sum[g[i]+1]-sum[i]; maxn=data[i]; tmp=i; } ans-=maxn; d[tmp]--; for(int i=tmp;i<=n/*g[tmp]*/;i++) gett[i]=max(gett[i-1],last[i-1])+d[i]; //for(int i=g[tmp];i>=tmp;i--) g[i]= gett[i]>last[i] ? g[i+1] : i; } printf("%d",ans); }
View Code
相关文章推荐
- NOIP2011提高组 DAY2 题解&总结
- 全国信息学奥林匹克联赛(NOIP2011)复赛 提高组 day2 T2 聪明的质监员
- NOIP 2011 提高组 复赛 day2 bus 观光公交
- Noip 提高组 2011 Day2 T2 聪明的质检员 二分法
- NOIP 2011 提高组 复赛 day2 factor 计算系数
- [NOIP2011提高组day2]-1-计算系数
- [NOIP2011提高组day2]-3-观光公交
- NOIP2011复赛提高组day2(A:计算系数 B:聪明的质监员 C:观光公交)
- [NOIP2011提高组day2]-2-聪明的质监员
- NOIP2011提高组Day2
- NOIP 2011 提高组 复赛 day2 qc 聪明的质监员
- luogu1003铺地毯[noip2011 提高组 Day1 T1]
- Noip 提高组 2014 Day2 T3 解方程 同余系
- 【NOIP2013提高组day2】【JZOJ 3537】华容道
- NOIP2011提高组(选择客栈)
- NOIP&nbsp;2011&nbsp;提高组第一试&nbsp;选择客栈
- noip 2011 提高组 计算系数
- NOIP2011复赛提高组day1(A:铺地毯 B:选择客栈 C:mayan游戏)
- 计蒜客 2017 NOIP 提高组模拟赛(三)Day2 小区划分