当前位置 : 主页 > 网页制作 > HTTP/TCP >

CodeForces 998B Cutting(贪心)

来源:互联网 收集:自由互联 发布时间:2021-06-16
https://codeforces.com/problemset/problem/998/B 简单贪心题 代码如下: 1 #include stdio.h 2 #include string .h 3 #include iostream 4 #include string 5 #include math.h 6 #include algorithm 7 #include vector 8 #include stack 9 #inclu

 

https://codeforces.com/problemset/problem/998/B

 

 

 

 

 简单贪心题

 

代码如下:

 1 #include <stdio.h>
 2 #include <string.h>
 3 #include <iostream>
 4 #include <string>
 5 #include <math.h>
 6 #include <algorithm>
 7 #include <vector>
 8 #include <stack>
 9 #include <queue>
10 #include <set>
11 #include <map>
12 #include <sstream>
13 const int INF=0x3f3f3f3f;
14 typedef long long LL;
15 const int mod=1e9+7;
16 //const double PI=acos(-1);
17 #define Bug cout<<"---------------------"<<endl
18 const int maxn=1e5+10;
19 using namespace std;
20 
21 int a[105];
22 int b[105];//如果可分,存放差值 
23 
24 int  main()
25 {
26     int n,m;
27     scanf("%d %d",&n,&m);
28     for(int i=0;i<n;i++)
29     {
30         scanf("%d",&a[i]);
31     }
32     int x=0;//前面奇数的个数 
33     int y=0;//前面偶数的个数 
34     int cnt=0;//b数组下标计数器 
35     for(int i=2;i!=n;i+=2)
36     {
37         a[i-2]%2==1? x++ : y++;
38         a[i-1]%2==1? x++ : y++;
39         if(x==y)//该数后面的间隔可分 
40             b[cnt++]=max(a[i],a[i-1])-min(a[i],a[i-1]);
41     }
42     sort(b,b+cnt);
43     int num=0;
44     for(int i=0;i<cnt;i++)
45     {
46         if(m>=b[i])
47         {
48             num++;
49             m-=b[i];
50         }
51         else
52             break;
53     }
54     printf("%d\n",num);
55     return 0;
56 }
网友评论