描述
题解
构造题,思路不好想,题解还是十分容易理解的,也算是一种贪心的构造了。
代码
#include <iostream>
#include <cstring>
using namespace std;
const int MAXN = 1e4 + 5;
pair<int, int> pii[MAXN];
int a = 99, b = 111, c = 0;
void solve()
{
for (int i = a; i >= 2; i--)
{
int x = a / i;
for (int j = 0; j < x; j++)
{
int tmp = b++;
for (int k = 1; k <= i; k++)
{
pii[c].first = tmp;
pii[c].second = k + i * j;
c++;
}
}
}
}
void output()
{
printf("%d %d\n", b - 1, c);
for (int i = 0; i <= c - 1; i++)
{
printf("%d %d\n", pii[i].first, pii[i].second);
}
printf("%d\n", a);
for (int i = 1; i <= a; i++)
{
printf("%d\n", i);
}
}
int main(int argc, const char * argv[])
{
solve();
output();
return 0;
}

本文介绍了一道ACM竞赛中的构造题,通过一种贪心策略完成解答。文章提供了详细的实现思路与C++代码示例,适合对算法竞赛感兴趣的学习者。

2038

被折叠的 条评论
为什么被折叠?



