纪中集训2020.01.13【NOIP普及组】模拟赛C组总结————My First Time Write Summary

纪中集训2020.01.13【NOIP普及组】模拟赛C组总结

题目编号 标题
0 【NOIP普及组模拟】取值( numbers.pas/cpp)
1 【NOIP普及组模拟】数对(pairs.pas/cpp )
2 【提高组NOIP2008】传纸条(message.pas/cpp)
3 【提高组NOIP2008】双栈排序 (twostack.pas/c/cpp)

~~巨佬估分:30+100+30+36.4=196.4~
蒟蒻得分:30+10+0+9.1=49.1
崩了!!!
第8,49.1分!!!一共10个人比赛FAQ
在AC代码和WA10分的代码中纠结,幸运的 我自豪的把WA的代码交上去了!
比赛完,巨佬们:啊!我少打了一点,少了个if,忘记附初始值了,差点就AK了!FAQ
蒟蒻(只有我):这个知识点好像还没学,emmmm…

0.【NOIP普及组模拟】取值( numbers.pas/cpp)

题目大意:读入n&m。使得x[1]+x[2]+x[3].......+x[n]=m。使得必须
0<=x[1]<=x[2]<=........x[n]<=m,求(x[1]到x[n])的取法总数 mod 100000007 的值?
样例输入
2
3 2
7 3

样例输出
2
8
 

数据范围限制
对于 10%的数据,1<=n<=m<=10
对于 30%的数据,1<=n<=m<=50
对于 50%的数据,1<=n<=m<=100
对于 100%的数据,T<=20,1<=n<=m<=300
 

分析直接崩了!!!30分,一个递归,看似很水的题目,实际上,还是很水!
正解,巨佬们说不就是个简单附初始值的DP(动态规划)吗?十几分钟就AC了!FAQ实力碾压
正解分析:首先,把对于 100%的数据,T<=20,1<=n<=m<=300,的所有的值都附一个初始值DP式

**f[i,j]:=f[i-1,j]+f[i,j-i];**记得把f[i,0]:=1;
然后直接输出!!!
注意M&N 读入二数的实际意义

附上AC Pascal 代码:

var
        n,x,y:int64;
        i,j,k,sum:longint;
        f:array[-305..305,-305..305]of int64;
begin
        assign(input,'numbers.in');
        reset(input);
        assign(output,'numbers.out');
        rewrite(output);
        readln(n);
        for i:=1 to 305 do
        begin
                f[i,0]:=1;
                for j:=1 to 305 do
                begin
                        f[i,j]:=f[i-1,j]+f[i,j-i];
                end;
        end;
        for i:=1 to n do
        begin
                readln(x,y);
                writeln(f[y,x] mod 100000007);
        end;
        close(input);
        close(output); 
end.

附上AC C++ 代码:

#include<cstdio>
using namespace std;
int t,n,m,k,i,j,f[1001][1001];
int main()
{
   
	freopen("numbers.in","r",stdin);
	freopen("numbers.out","w",stdout);
	scanf("%d",&t);
	for (k=1;k<=t;k++)
	{
   
		scanf("%d%d",&m,&n);
		for (i=1;i<=n;i++)
			f[i][0]=1;
		for (i=
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值