Skip to content

Commit a5b5360

Browse files
committed
Initial commit
0 parents  commit a5b5360

File tree

1,210 files changed

+68916
-0
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

1,210 files changed

+68916
-0
lines changed

.clang-format

+14
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
BasedOnStyle: LLVM
2+
UseTab: Never
3+
IndentWidth: 4
4+
TabWidth: 4
5+
BreakBeforeBraces: Allman
6+
AllowShortIfStatementsOnASingleLine: false
7+
ColumnLimit: 0
8+
AccessModifierOffset: -2
9+
AlignEscapedNewlines: DontAlign
10+
FixNamespaceComments: false
11+
IndentCaseLabels: true
12+
NamespaceIndentation: All
13+
SortIncludes: false
14+
AlignTrailingComments: false

.gitignore

+5
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
*.exe
2+
*.class
3+
*.txt
4+
!problems.txt
5+
.vscode
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
#include <iostream>
2+
#include <algorithm>
3+
using namespace std;
4+
5+
struct Node
6+
{
7+
int idx, val;
8+
};
9+
10+
int cmp(Node &a, Node &b)
11+
{
12+
return a.val > b.val;
13+
}
14+
15+
int main()
16+
{
17+
int t;
18+
cin >> t;
19+
while (t--)
20+
{
21+
int n;
22+
Node arr[105];
23+
cin >> n;
24+
for (int i = 0; i < n; i++)
25+
{
26+
cin >> arr[i].val;
27+
arr[i].idx = i + 1;
28+
}
29+
sort(arr, arr + n, cmp);
30+
cout << arr[0].idx << ' ' << arr[1].val << endl;
31+
}
32+
return 0;
33+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
#include <iostream>
2+
#include <cstdio>
3+
#include <cmath>
4+
using namespace std;
5+
6+
int main()
7+
{
8+
int t;
9+
cin >> t;
10+
while (t--)
11+
{
12+
double H, h, D;
13+
scanf("%lf %lf %lf", &H, &h, &D);
14+
double ans = sqrt((H - h) * D);
15+
double sum = (H - h) * D / H;
16+
if (ans >= D)
17+
{
18+
printf("%.3lf\n", h);
19+
}
20+
else if (ans < sum)
21+
{
22+
printf("%.3lf\n", h * D / H);
23+
}
24+
else
25+
{
26+
double q = H + D - ans - (H - h) * D / ans;
27+
printf("%.3lf\n", q);
28+
}
29+
}
30+
return 0;
31+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
#include <iostream>
2+
#include <string>
3+
#include <map>
4+
using namespace std;
5+
6+
int main()
7+
{
8+
int t;
9+
cin >> t;
10+
map<string, int> m;
11+
while (t--)
12+
{
13+
string s;
14+
cin >> s;
15+
m[s]++;
16+
}
17+
int k;
18+
cin >> k;
19+
while (k--)
20+
{
21+
int n, cnt = 0;
22+
cin >> n;
23+
while (n--)
24+
{
25+
string ss;
26+
cin >> ss;
27+
if (m[ss] > 0)
28+
{
29+
cnt++;
30+
}
31+
}
32+
cout << cnt << endl;
33+
}
34+
return 0;
35+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
1+
#include <iostream>
2+
#include <algorithm>
3+
using namespace std;
4+
5+
int main()
6+
{
7+
int t;
8+
cin >> t;
9+
while (t--)
10+
{
11+
int n;
12+
cin >> n;
13+
int in[150], out[150];
14+
for (int i = 0; i < n; i++)
15+
{
16+
cin >> in[i];
17+
}
18+
for (int i = 0; i < n; i++)
19+
{
20+
cin >> out[i];
21+
}
22+
int flag1 = 1, flag2 = 1;
23+
for (int i = 0; i < n; i++)
24+
{
25+
if (in[i] != out[i])
26+
{
27+
flag1 = 0;
28+
break;
29+
}
30+
}
31+
reverse(out, out + n);
32+
for (int i = 0; i < n; i++)
33+
{
34+
if (in[i] != out[i])
35+
{
36+
flag2 = 0;
37+
break;
38+
}
39+
}
40+
if (flag1)
41+
{
42+
if (flag2)
43+
{
44+
cout << "both" << endl;
45+
}
46+
else
47+
{
48+
cout << "queue" << endl;
49+
}
50+
}
51+
else
52+
{
53+
if (flag2)
54+
{
55+
cout << "stack" << endl;
56+
}
57+
else
58+
{
59+
cout << "neither" << endl;
60+
}
61+
}
62+
}
63+
return 0;
64+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
#include <iostream>
2+
#include <algorithm>
3+
using namespace std;
4+
5+
int dp[300][300];
6+
7+
struct Node
8+
{
9+
int a, b;
10+
};
11+
12+
bool cmp(Node &x, Node &y)
13+
{
14+
return x.b < y.b;
15+
}
16+
17+
int main()
18+
{
19+
int t;
20+
cin >> t;
21+
while (t--)
22+
{
23+
Node tree[300];
24+
int n, m;
25+
cin >> n >> m;
26+
for (int i = 1; i <= n; i++)
27+
{
28+
cin >> tree[i].a;
29+
}
30+
for (int i = 1; i <= n; i++)
31+
{
32+
cin >> tree[i].b;
33+
}
34+
sort(tree + 1, tree + n + 1, cmp);
35+
for (int i = 1; i <= n; i++)
36+
{
37+
for (int j = 1; j <= m; j++)
38+
{
39+
dp[i][j] = max(dp[i - 1][j], dp[i - 1][j - 1] + tree[i].b * (j - 1) + tree[i].a);
40+
}
41+
}
42+
cout << dp[n][m] << endl;
43+
}
44+
return 0;
45+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
#include <iostream>
2+
#include <cstdio>
3+
using namespace std;
4+
5+
int main()
6+
{
7+
int t;
8+
scanf("%d", &t);
9+
while (t--)
10+
{
11+
int area[20][20];
12+
for (int i = 0; i < 20; i++)
13+
{
14+
for (int j = 0; j < 20; j++)
15+
{
16+
area[i][j] = 1;
17+
}
18+
}
19+
int n, m, k;
20+
scanf("%d %d %d", &n, &m, &k);
21+
for (int i = 1; i < n - 1; i++)
22+
{
23+
for (int j = 1; j < m - 1; j++)
24+
{
25+
if (k == 0)
26+
{
27+
break;
28+
}
29+
area[i][j] = 0;
30+
area[i - 1][j] = 0;
31+
area[i + 1][j] = 0;
32+
area[i][j - 1] = 0;
33+
area[i][j + 1] = 0;
34+
k--;
35+
}
36+
}
37+
for (int i = 0; i < n; i++)
38+
{
39+
for (int j = 0; j < m; j++)
40+
{
41+
printf("%d", area[i][j]);
42+
if (j != m - 1)
43+
{
44+
printf(" ");
45+
}
46+
}
47+
printf("\n");
48+
}
49+
}
50+
return 0;
51+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
#include <iostream>
2+
#include <algorithm>
3+
4+
using namespace std;
5+
6+
int arr[107], brr[107];
7+
8+
int solve(int a, int b)
9+
{
10+
int cnt = 0;
11+
for (int i = 1; i <= max(a, b); i <<= 1)
12+
{
13+
cnt += ((a & i) != (b & i)) ? 1 : 0;
14+
}
15+
return cnt;
16+
}
17+
18+
int main()
19+
{
20+
int t;
21+
cin >> t;
22+
while (t--)
23+
{
24+
int m, n;
25+
cin >> m >> n;
26+
for (int i = 0; i < m; i++)
27+
{
28+
cin >> arr[i];
29+
}
30+
for (int i = 0; i < n; i++)
31+
{
32+
cin >> brr[i];
33+
}
34+
sort(arr, arr + m);
35+
for (int i = 0; i < n; i++)
36+
{
37+
int ans = 0x3f3f3f3f, pos = -1;
38+
for (int j = 0; j < m; j++)
39+
{
40+
int tmp = solve(arr[j], brr[i]);
41+
if (tmp < ans)
42+
{
43+
ans = tmp;
44+
pos = j;
45+
}
46+
}
47+
cout << arr[pos] << endl;
48+
}
49+
}
50+
return 0;
51+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
#include <iostream>
2+
#include <cstdio>
3+
#include <algorithm>
4+
5+
using namespace std;
6+
7+
const double eps = 1e-15;
8+
const double INF = 1e15;
9+
10+
int arr[100007], brr[100007], crr[100007];
11+
int n;
12+
13+
double calc(double x)
14+
{
15+
double ans = -INF;
16+
for (int i = 0; i < n; i++)
17+
{
18+
ans = max(ans, arr[i] * x * x + brr[i] * x + crr[i]);
19+
}
20+
return ans;
21+
}
22+
23+
double search()
24+
{
25+
double l = 0, r = 1000;
26+
while (l + eps < r)
27+
{
28+
double mid1 = l + (r - l) / 3, mid2 = r - (r - l) / 3;
29+
if (calc(mid1) > calc(mid2))
30+
{
31+
l = mid1;
32+
}
33+
else
34+
{
35+
r = mid2;
36+
}
37+
}
38+
return l;
39+
}
40+
41+
int main()
42+
{
43+
int t;
44+
scanf("%d", &t);
45+
while (t--)
46+
{
47+
scanf("%d", &n);
48+
for (int i = 0; i < n; i++)
49+
{
50+
scanf("%d %d %d", &arr[i], &brr[i], &crr[i]);
51+
}
52+
printf("%.4f\n", calc(search()));
53+
}
54+
return 0;
55+
}

0 commit comments

Comments
 (0)