#include <cstdio>
#include <iostream>
const int MAXN = 1e5 + 5;
int ans[MAXN];
int main()
{
int N;
std::cin >> N;
for (int i = 1; i <= N; i++)
{
int val;
scanf("%d", &val);
ans[val] = i;
}
for (int i = 1; i <= N; i++)
printf(i == 1 ? "%d" : " %d", ans[i]);
std::cout << std::endl;
return 0;
}
#include <iostream>
#include <cstdio>
#include <algorithm>
using namespace std;
struct TIME
{
int l, r;
bool operator<(const TIME& x) const
{
return l < x.l;
}
}sec[55];
int main()
{
int N, X, ANS = 0;
cin >> N >> X;
for (int i = 1; i <= N; i++)
scanf("%d %d", &sec[i].l, &sec[i].r);
sort(sec + 1, sec + N + 1);
for (int i = 1; i <= N; i++)
{
int restT = sec[i].l - sec[i - 1].r - 1;
int num = restT / X;
restT = restT - num * X;
ANS += restT;
ANS += sec[i].r - sec[i].l + 1;
}
cout << ANS << endl;
return 0;
}
//如果当前字符不比后面的字符大,就不用删
#include <cstdio>
#include <iostream>
using namespace std;
int main()
{
int N;
string s;
cin >> N >> s;
for (int i = 0; i < N - 1; i++)
{
if (s[i] <= s[i + 1]) continue;
else
{
for (int j = 0; j <= i - 1; j++)
cout << s[j];
for (int j = i + 1; j < N; j++)
cout << s[j];
cout << endl;
return 0;
}
}
for (int i = 0; i < N - 1; i++)
cout << s[i];
cout << endl;
return 0;
}
值得注意的是,K<2e9,但是8*K就会爆int,既然会爆int,就使用long long,为了防止算术溢出和精度问题,其他变量也用long long 和 long double,包括常量
//考虑b1和b2的位置
#include <cstdio>
#include <iostream>
#include <cmath>
using namespace std;
int main()
{
long long T, N, K;
cin >> T;
while (T--)
{
cin >> N >> K;
long long GroupNum = ceil((-1.0L + sqrtl((long double)(1.0L + 8.0L * K))) / 2.0L);
long long Offset = K - GroupNum * (GroupNum - 1) / 2;
long long Pos1 = N - GroupNum;
long long Pos2 = N - Offset + 1;
for (long long i = 1; i <= N; i++)
{
if (i == Pos1 || i == Pos2)
printf("b");
else printf("a");
}
printf("\n");
}
return 0;
}
#include <cstdio>
#include <iostream>
#include <cmath>
using namespace std;
const int MAXN = 1e6 + 5;
int bucket[MAXN];
int main()
{
int N, D;
cin >> N >> D;
int ai, bi;
for (int i = 1; i <= N; i++)
{
cin >> ai >> bi;
if (ai > D)
{
bucket[ai] = i;
continue;
}
int k = (D - ai) / bi;
bucket[ai + k * bi] = i;
bucket[ai + k * bi + bi] = i;
bucket[ai + k * bi + bi + bi] = 1;
}
int i = D;
while (1)
{
if (bucket[i])
{
cout << bucket[i] << endl;
return 0;
}
++i;
}
return 0;
}
原文:https://www.cnblogs.com/qingoba/p/12988771.html