problemscpp
A collection of my answers to algorithm problems in c++.
静态 Public 成员函数 | 所有成员列表
acwing::acwing1738类 参考

AcWing 1738. 蹄球 更多...

#include <acwing.h>

静态 Public 成员函数

static int main (istream &cin, ostream &cout)
 

详细描述

AcWing 1738. 蹄球

在文件 acwing.h1008 行定义.

成员函数说明

◆ main()

int acwing::acwing1738::main ( istream &  cin,
ostream &  cout 
)
static

在文件 acwing.cpp3112 行定义.

3112 {
3113 int n;
3114 cin >> n;
3115 if(n == 1 || n == 2) {
3116 cout << 1;
3117 return 0;
3118 }
3119 auto *x = new int[n];
3120 auto *jmp = new int[n];
3121 auto *in = new int[n];
3122 memset(in, 0, n * sizeof(int));
3123 for(int i = 0; i < n; i++) {
3124 cin >> x[i];
3125 }
3126 sort(x, x + n);
3127 in[1] = 1;
3128 in[n - 2] = 1;
3129 jmp[0] = 1;
3130 jmp[n - 1] = n - 2;
3131 for(int i = 1; i < n - 1; i++) {
3132 if(x[i + 1] - x[i] < x[i] - x[i - 1]) {
3133 in[i + 1]++;
3134 jmp[i] = i + 1;
3135 } else {
3136 in[i - 1]++;
3137 jmp[i] = i - 1;
3138 }
3139 }
3140 int circle_count = 0;
3141 int ans = 0;
3142 for(int i = 0; i < n; i++) {
3143 if(in[i] == 0) {
3144 ans++;
3145 }
3146 if(jmp[jmp[i]] == i && in[i] == 1 && in[jmp[i]] == 1) {
3147 circle_count++;
3148 }
3149 }
3150 circle_count /= 2;
3151 cout << ans + circle_count;
3152 delete[] x;
3153 delete[] in;
3154 delete[] jmp;
3155 return 0;
3156 }

被这些函数引用 acwing::TEST().


该类的文档由以下文件生成: