2016.11.6 night NOIP模拟赛 考试整理

题目+数据:链接:http://pan.baidu.com/s/1hssN8GG 密码:bjw8
总结:

总分:300分,仅仅拿了120份。

这次所犯的失误:对于2,3题目,我刚刚看就想到了正确思路,急于敲正确思路,而没有去骗基础得分。

结果第二题DP打残了,第三题排列组合漏了一个小点没考虑到,都是仅仅拿了10分。

T1:

 1 /*
 2 第一题比较容易,注意一些细节就可以了。
 3 比如删除前导0不能删没了等等。
 4 */
 5 #define N 1500
 6 #include<iostream>
 7 using namespace std;
 8 #include<cstdio>
 9 #include<cstring>
10 char a[N],b[N];
11 int a1[N],b1[N],len;
12 void input()
13 {
14     scanf("%s%s",a+1,b+1);
15     len=strlen(a+1);
16     for(int i=1;i<=len;++i)
17       a1[i]=a[i]-'0';
18     for(int i=1;i<=len;++i)
19       b1[i]=b[i]-'0';
20 }
21 int main()
22 {
23     freopen("number.in","r",stdin);
24     freopen("number.out","w",stdout);
25     input();
26     for(int i=1;i<=len;++i)
27     {
28         if(a1[i]>b1[i]) b1[i]=11;
29         if(a1[i]<b1[i]&&b1[i]!=11) a1[i]=11;
30     }
31     int ia=1,ib=1;
32     bool flag=false;
33     while(ia<len&&(a1[ia]==0||a1[ia]==11))
34     {
35          if(a1[ia]==0) flag=true;
36          ia++;
37     }
38     if(a1[ia]==11) ia++;
39     if(ia>len&&(!flag)) printf("BOOM");
40     else{
41         for(int i=ia;i<=len;++i)
42            if(a1[i]!=11) printf("%d",a1[i]);
43         if(ia>len&&flag) printf("0");
44     }
45     printf("\n");
46     flag=false;
47     while(ib<len&&(b1[ib]==0||b1[ib]==11))
48     {
49         if(b1[ia]==0) flag=true;
50         ib++;
51     }
52     if(b1[ib]==11) ib++;
53     if(ib>len&&(!flag)) printf("BOOM");
54     else{
55         for(int i=ib;i<=len;++i)
56           if(b1[i]!=11) printf("%d",b1[i]);
57         if(ib>len&&flag) printf("0");
58     }
59     fclose(stdin);
60     fclose(stdout);
61     return 0;
62 }

T2:正确做法所用的技巧和NOIP2015Day2子串相同都用到了辅助数组。

哎╮(╯▽╰)╭圆形操场不是成环考虑的。

说明:测试数据中有两组是有问题的,就是当出现偶数组合并不了的时候,是输出了最大值。而zhx大牛的最大值是1e9,因人而异吧。

 1 #define N 405
 2 #include<iostream>
 3 using namespace std;
 4 #include<cstdio>
 5 #include<cstring>
 6 typedef long long ll;
 7 int n,sum[N];
 8 ll f1[N][N],f2[N][N];
 9 void input()
10 {
11     scanf("%d",&n);
12     int x;
13     for(int i=1;i<=n;++i)
14     {
15         scanf("%d",&x);
16         sum[i]=sum[i-1]+x;
17     }
18 }
19 void DP()
20 {
21     for(int i=1;i<=n;++i)
22       for(int j=1;j<=n;++j)
23          f1[i][j]=f2[i][j]=(1<<31)-1;
24     for(int i=1;i<=n-1;++i)
25       f2[i][i+1]=sum[i+1]-sum[i-1];
26     for(int i=1;i<=n;++i)
27       f1[i][i]=0;
28     for(int len=3;len<=n;++len)
29       for(int i=1;i+len-1<=n;++i)
30       {
31           int j=i+len-1;
32           for(int k=i;k<j;++k) f2[i][j]=min(f2[i][j],f1[i][k]+f1[k+1][j]+sum[j]-sum[i-1]);
33           for(int k=i;k<j;++k) f1[i][j]=min(f1[i][j],f2[i][k]+f1[k+1][j]+sum[j]-sum[k]);
34           /*注意这个推f1这个方程中,所加的代价是sum[j]-sum[k],因为i---k-1,这段石子的花费,我们在推f2的时候已经加过了,所以不能重复加了*/
35       }
36 }
37 int main()
38 {
39     freopen("merge.in","r",stdin);
40     freopen("merge.out","w",stdout);
41     input();
42     DP();
43     cout<<f1[1][n]<<endl;
44     fclose(stdin);
45     fclose(stdout);
46     return 0;
47 }

T3:

 

 1 #define N 100010
 2 #include<iostream>
 3 using namespace std;
 4 #include<cstdio>
 5 #define mod 1000000007
 6 typedef long long ll;
 7 int n,m,x,y;
 8 bool p1[N],p2[N];
 9 ll jc[N],ny[N];
10 ll quick_pow(ll a,ll b)//a^b
11 {
12     ll ans=1;
13     while(b)
14     {
15         if(b&1)
16         {
17             ans=(ans*a)%mod;
18         }
19         a=(a*a)%mod;
20         b>>=1;
21     }
22     return ans;
23 }
24 ll Mo(ll x)/*这里定义了一个负数的取模方法,因为负数取模还是负数,所以为了预防结果输出这种不合逻辑的答案,我们需要进行如下处理*/
25 {
26     if(x>=0&&x<mod) return x;
27     x%=mod;
28     if(x<0) x+=mod;
29     return x;
30 }
31 ll C(int n,int m)
32 {
33     if(m>n||m<0) return 0;
34     if(m==n||m==0) return 1;
35     return jc[n]*ny[m]%mod*ny[n-m]%mod;
36 }
37 int main()
38 {
39     freopen("problem.in","r",stdin);
40     freopen("problem.out","w",stdout);
41     scanf("%d%d",&n,&m);
42     for(int i=1;i<=m;++i)
43     {
44         scanf("%d%d",&x,&y);
45         if(x==y)
46         {
47             printf("0");
48             return 0;
49             }    
50         p1[x]=true;p2[y]=true;
51     }
52     int s=0;
53     for(int i=1;i<=n;++i)
54     {
55         if(!p1[i]&&!p2[i]) s++;/*统计可以自由放的个数*/
56     }
57     jc[0]=1;
58     for(int i=1;i<=n;++i) jc[i]=(jc[i-1]*i)%mod;
59     for(int i=0;i<=n;++i) ny[i]=quick_pow(jc[i],mod-2);
60     ll ans=jc[n-m];
61     for(int i=1;i<=s;++i)
62     {
63         if(i&1) ans=Mo(ans-C(s,i)*jc[n-m-i]);
64         else ans=Mo(ans+C(s,i)*jc[n-m-i]);
65     }
66     cout<<ans<<endl;
67     fclose(stdin);
68     fclose(stdout);
69     return 0;
70 }

 

转载于:https://www.cnblogs.com/c1299401227/p/6040874.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
东南亚位于我国倡导推进的“一带一路”海陆交汇地带,作为当今全球发展最为迅速的地区之一,近年来区域内生产总值实现了显著且稳定的增长。根据东盟主要经济体公布的最新数据,印度尼西亚2023年国内生产总值(GDP)增长5.05%;越南2023年经济增长5.05%;马来西亚2023年经济增速为3.7%;泰国2023年经济增长1.9%;新加坡2023年经济增长1.1%;柬埔寨2023年经济增速预计为5.6%。 东盟国家在“一带一路”沿线国家中的总体GDP经济规模、贸易总额与国外直接投资均为最大,因此有着举足轻重的地位和作用。当前,东盟与中国已互相成为双方最大的交易伙伴。中国-东盟贸易总额已从2013年的443亿元增长至 2023年合计超逾6.4万亿元,占中国外贸总值的15.4%。在过去20余年中,东盟国家不断在全球多变的格局里面临挑战并寻求机遇。2023东盟国家主要经济体受到国内消费、国外投资、货币政策、旅游业复苏、和大宗商品出口价企稳等方面的提振,经济显现出稳步增长态势和强韧性的潜能。 本调研报告旨在深度挖掘东南亚市场的增长潜力与发展机会,分析东南亚市场竞争态势、销售模式、客户偏好、整体市场营商环境,为国内企业出海开展业务提供客观参考意见。 本文核心内容: 市场空间:全球行业市场空间、东南亚市场发展空间。 竞争态势:全球份额,东南亚市场企业份额。 销售模式:东南亚市场销售模式、本地代理商 客户情况:东南亚本地客户及偏好分析 营商环境:东南亚营商环境分析 本文纳入的企业包括国外及印尼本土企业,以及相关上下游企业等,部分名单 QYResearch是全球知名的大型咨询公司,行业涵盖各高科技行业产业链细分市场,横跨如半导体产业链(半导体设备及零部件、半导体材料、集成电路、制造、封测、分立器件、传感器、光电器件)、光伏产业链(设备、硅料/硅片、电池片、组件、辅料支架、逆变器、电站终端)、新能源汽车产业链(动力电池及材料、电驱电控、汽车半导体/电子、整车、充电桩)、通信产业链(通信系统设备、终端设备、电子元器件、射频前端、光模块、4G/5G/6G、宽带、IoT、数字经济、AI)、先进材料产业链(金属材料、高分子材料、陶瓷材料、纳米材料等)、机械制造产业链(数控机床、工程机械、电气机械、3C自动化、工业机器人、激光、工控、无人机)、食品药品、医疗器械、农业等。邮箱:market@qyresearch.com

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值