Codeforces Round #208 (Div. 2)

A - Dima and Continuous Line

水题:直接模拟;

 1 #include<cstdio>
 2 #define maxn 1005
 3 using namespace std;
 4 int x[maxn],y[maxn];
 5 int main()
 6 {
 7     int n,a,b,last;
 8     scanf("%d",&n);
 9     bool flag=1;
10     for(int i=0;i<n;i++)
11     {
12         scanf("%d",&b);
13         a=last;
14         last=b;
15         if(i==0)continue;
16         if(a>b)
17         {
18             a=a^b;
19             b=a^b;
20             a=a^b;
21         }
22         if(flag)
23         for(int j=0;j<i;j++)
24         {
25             if((a>x[j]&&a<y[j]&&b>y[j])||(x[j]>a&&b>x[j]&&y[j]>b))
26                 flag=0;
27         }
28         x[i]=a;
29         y[i]=b;
30     }
31     if(flag==0)puts("yes");
32     else puts("no");
33     return 0;
34 }
View Code

B - Dima and Text Messages

水题:按照顺序找就行了

 1 #include<cstdio>
 2 #include<iostream>
 3 #include<cstring>
 4 #include<string>
 5 #define maxn 100005
 6 using namespace std;
 7 string s,t,c;
 8 int main()
 9 {
10     int n;
11     scanf("%d",&n);
12     s="<3";
13     for(int i=0;i<n;i++)
14     {
15         cin>>c;
16         s+=c;
17         s+="<3";
18     }
19     cin>>t;
20     int j=0;
21     int l=s.size();
22     int m=t.size();
23     for(int i=0;i<m;i++)
24     {
25         if(s[j]==t[i])
26         {
27             j++;
28             if(j==l)break;
29         }
30     }
31     if(j==l)puts("yes");
32     else puts("no");
33     return 0;
34 }
View Code

C - Dima and Containers

水题:直接模拟,三个容器每个放一个大的,其他小的都放在deck的另一边;

 1 #include<cstdio>
 2 #include<algorithm>
 3 #define maxn 100005
 4 using namespace std;
 5 
 6 struct node
 7 {
 8     int id;
 9     int num;
10     bool operator<(const node &t)const
11     {
12         return num<t.num;
13     }
14 }no[maxn];
15 
16 int ans[maxn];
17 
18 char s[20][30]={"pushStack","pushQueue","pushFront","pushBack","0","popStack","popStack popQueue","popStack popQueue popFront"};
19 int main()
20 {
21     int n;
22     scanf("%d",&n);
23     for(int i=0;i<n;i++)
24     {
25         scanf("%d",&no[i].num);
26         no[i].id=i;
27     }
28     int j=0;
29     for(int i=0;i<n;i++)
30     {
31         if(no[i].num==0&&i!=j)
32         {
33             int cnt=0;
34             sort(no+j,no+i);
35 //            for(int k=j;k<=i-1;k++)
36 //                printf("%d<\n",no[k].num);
37             ans[no[i-1].id]=0;
38             cnt++;
39             if(i-2>=j){ans[no[i-2].id]=1;cnt++;}
40             if(i-3>=j){ans[no[i-3].id]=2;cnt++;}
41             if(i-4>=j)
42             {
43                 for(int k=j;k<=i-4;k++)
44                     ans[no[k].id]=3;
45             }
46             if(cnt==1)ans[i]=5;
47             if(cnt==2)ans[i]=6;
48             if(cnt==3)ans[i]=7;
49             j=i+1;
50         }
51         else if(no[i].num==0&&i==j){ans[i]=4;j++;}
52     }
53     for(int i=0;i<n;i++)
54     {
55         if(ans[i]<5)puts(s[ans[i]]);
56         else printf("%d %s\n",ans[i]-4,s[ans[i]]);
57     }
58     return 0;
59 }
View Code

D - Dima and Hares

dp:

这个题挺不错的;

before[i]代表第i个兔子比它前面的那个先喂;

after[i]代表第i个兔子比它前面那个后喂;

然后扫一遍就行,注意边界条件

 

 1 #include<cstdio>
 2 #include<algorithm>
 3 #define maxn 3005
 4 using namespace std;
 5 
 6 int map[3][maxn];
 7 int before[maxn],after[maxn];
 8 
 9 int main()
10 {
11     int n;
12     scanf("%d",&n);
13     for(int i=1;i<=n;i++)
14         scanf("%d",&map[0][i]);
15     for(int i=1;i<=n;i++)
16         scanf("%d",&map[1][i]);
17     for(int i=1;i<=n;i++)
18         scanf("%d",&map[2][i]);
19     before[1]=0;
20     after[1]=-9999999;
21     for(int i=2;i<=n+1;i++)
22     {
23         before[i]=max(before[i-1]+map[1][i-1],after[i-1]+map[2][i-1]);
24         after[i]=max(before[i-1]+map[0][i-1],after[i-1]+map[1][i-1]);
25     }
26     printf("%d\n",after[n+1]);
27     return 0;
28 }
View Code

 

转载于:https://www.cnblogs.com/yours1103/p/3417557.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
提供的源码资源涵盖了安卓应用、小程序、Python应用和Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值