Skip to content

Commit bce80fb

Browse files
committed
gitignore and some dp
1 parent b589366 commit bce80fb

File tree

5 files changed

+239
-0
lines changed

5 files changed

+239
-0
lines changed

.gitignore

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,3 +7,7 @@ gen
77
check
88
a.out
99
*.pdf
10+
GTAGS
11+
GRTAGS
12+
GPATH
13+
\#*

uva/10684/10684.cpp

Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
2+
#include <bits/stdc++.h>
3+
using namespace std;
4+
5+
#define infint 0x7fffffff // 32-bit int
6+
#define ninfint 0x80000000
7+
#define EPS 1e-9
8+
#define mp(A, B) make_pair(A, B)
9+
#define sdf(n) scanf("%d", &n)
10+
#define ssf(a) scanf(" %s ", a)
11+
#define pdf(n) printf("%d", n)
12+
#define pcf(c) printf("%c", c)
13+
#define pdfn(n) printf("%d\n", n)
14+
#define pb push_back
15+
#define pendl() printf("\n")
16+
17+
#define isOn(S, j) (S & (1 << j))
18+
#define setBit(S, j) (S |= (1 << j))
19+
#define clearBit(S, j) (S &= ~(1 << j))
20+
#define toggleBit(S, j) (S ^= (1 << j))
21+
#define lowBit(S) (S & (-S))
22+
#define setAll(S, n) (S = (1 << n) - 1)
23+
#define pque priority_queue
24+
25+
typedef long long ll;
26+
typedef pair<int, int> ii;
27+
typedef pair<int, ii> iii;
28+
typedef vector<int> vi;
29+
typedef vector<ii> vii;
30+
typedef vector<iii> viii;
31+
32+
#define endl '\n'
33+
34+
int N;
35+
36+
int main() {
37+
ios_base::sync_with_stdio(false);
38+
cin.tie(NULL);
39+
while (cin >> N, N) {
40+
int sum = 0, soln = 0;
41+
while (N--) {
42+
int a;
43+
cin >> a;
44+
if (sum + a >= 0) {
45+
sum += a;
46+
} else {
47+
sum = 0;
48+
}
49+
soln = max(soln, sum);
50+
}
51+
if (sum == 0) {
52+
cout << "Losing streak.";
53+
} else {
54+
cout << "The maximum winning streak is " << soln << ".";
55+
}
56+
cout << endl;
57+
}
58+
return 0;
59+
}
Lines changed: 105 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,105 @@
1+
#include <iostream>
2+
#include <iomanip>
3+
#include <sstream>
4+
#include <bitset>
5+
#include <cstdio>
6+
#include <ctime>
7+
#include <chrono> //C++11
8+
#include <algorithm>
9+
#include <map>
10+
#include <utility>
11+
#include <set>
12+
#include <vector>
13+
#include <queue>
14+
#include <stack>
15+
#include <list>
16+
#include <string>
17+
#include <cstring>
18+
#include <cctype>
19+
#include <climits>
20+
#include <cmath>
21+
#include <functional>
22+
#include <cstring>
23+
using namespace std;
24+
25+
#define inf 0x7fffffff //32-bit int
26+
#define ninf 0x80000000
27+
#define mp(A,B) make_pair(A,B)
28+
#define sdf(n) scanf("%d",&n)
29+
#define ssf(a) scanf(" %s ", a)
30+
#define pdf(n) printf("%d",n)
31+
#define pcf(c) printf("%c",c)
32+
#define pdfn(n) printf("%d\n",n)
33+
#define pb push_back
34+
#define pendl() printf("\n")
35+
36+
#define isOn(S, j) (S & (1 << j))
37+
#define setBit(S, j) (S |= (1 << j))
38+
#define clearBit(S, j) (S &= ~(1 << j))
39+
#define toggleBit(S, j) (S ^= (1 << j))
40+
#define lowBit(S) (S & (-S))
41+
#define setAll(S, n) (S = (1 << n) - 1)
42+
43+
//typedef later
44+
#define ii pair<int,int>
45+
#define iii pair<int,ii>
46+
typedef vector<int> vi;
47+
#define vii vector<ii>
48+
#define viii vector<iii>
49+
#define pque priority_queue
50+
51+
int G, M, modelPrices[25][25];
52+
bool dp[2][205];
53+
int prv, cur;
54+
55+
void solve() {
56+
for (int model = 1; model <= modelPrices[0][0]; model++) {
57+
int price = modelPrices[0][model];
58+
if (M - price >= 0) {
59+
dp[prv][M-price] = true;
60+
}
61+
}
62+
for (int g = 1; g < G; g++) {
63+
for (int m = 0; m <= M; m++) {
64+
dp[cur][m] = false;
65+
if (dp[prv][m] == true) {
66+
for (int model = 1; model <= modelPrices[g][0]; model++) {
67+
int price = modelPrices[g][model];
68+
if (m - price >= 0) {
69+
dp[cur][m-price] = true;
70+
}
71+
}
72+
}
73+
}
74+
swap(prv, cur);
75+
}
76+
}
77+
78+
int main() {
79+
ios_base::sync_with_stdio(false);
80+
cin.tie(NULL);
81+
int T; cin >> T;
82+
while (T--) {
83+
memset(dp, false, 205);
84+
cin >> M >> G;
85+
prv = 0, cur = 1;
86+
for (int i = 0; i < G; i++) {
87+
int K; cin >> K;
88+
modelPrices[i][0] = K;
89+
for (int j = 1; j <= K; j++)
90+
cin >> modelPrices[i][j];
91+
}
92+
solve();
93+
int m;
94+
for (m = 0; m <= M && !dp[prv][m]; m++);
95+
96+
if (m == M+1)
97+
cout << "no solution";
98+
else
99+
cout << M-m;
100+
cout << endl;
101+
}
102+
103+
return 0;
104+
}
105+
File renamed without changes.

uva/507/507.cpp

Lines changed: 71 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,71 @@
1+
#include <bits/stdc++.h>
2+
using namespace std;
3+
4+
#define infint 0x7fffffff //32-bit int
5+
#define ninfint 0x80000000
6+
#define EPS 1e-9
7+
#define mp(A,B) make_pair(A,B)
8+
#define sdf(n) scanf("%d",&n)
9+
#define ssf(a) scanf(" %s ", a)
10+
#define pdf(n) printf("%d",n)
11+
#define pcf(c) printf("%c",c)
12+
#define pdfn(n) printf("%d\n",n)
13+
#define pb push_back
14+
#define pendl() printf("\n")
15+
16+
#define isOn(S, j) (S & (1 << j))
17+
#define setBit(S, j) (S |= (1 << j))
18+
#define clearBit(S, j) (S &= ~(1 << j))
19+
#define toggleBit(S, j) (S ^= (1 << j))
20+
#define lowBit(S) (S & (-S))
21+
#define setAll(S, n) (S = (1 << n) - 1)
22+
#define pque priority_queue
23+
24+
typedef long long ll;
25+
typedef pair<int,int> ii;
26+
typedef pair<int,ii> iii;
27+
typedef vector<int> vi;
28+
typedef vector<ii> vii;
29+
typedef vector<iii> viii;
30+
31+
#define endl '\n'
32+
int route[20005], S, b;
33+
34+
void solve(int r) {
35+
int sum = 0, soln = 0, s = 1, solns, solne;
36+
for (int e = 1; e <= S-1; ++e) {
37+
int a = route[e];
38+
if (sum + a >= 0) {
39+
sum += a;
40+
} else {
41+
sum = 0;
42+
s = e+1;
43+
}
44+
if ((sum > soln) || (sum == soln && e-s > solne-solns)) {
45+
soln = sum;
46+
solns = s, solne = e;
47+
}
48+
}
49+
if (soln != 0) {
50+
cout << "The nicest part of route " << r << " is between stops " << solns
51+
<< " and " << solne+1 << endl;
52+
} else {
53+
cout << "Route " << r << " has no nice parts" << endl;
54+
}
55+
}
56+
57+
58+
int main(){
59+
ios_base::sync_with_stdio(false);
60+
cin.tie(NULL);
61+
cin >> b;
62+
for (int r = 1; r <= b; r++){
63+
cin >> S;
64+
for (int i = 1; i <= S-1; ++i) {
65+
cin >> route[i];
66+
}
67+
solve(r);
68+
}
69+
70+
return 0;
71+
}

0 commit comments

Comments
 (0)