File tree Expand file tree Collapse file tree 4 files changed +99
-1
lines changed Expand file tree Collapse file tree 4 files changed +99
-1
lines changed Original file line number Diff line number Diff line change 1
1
NowCoder_C++ /
2
2
* .filters
3
3
* .vcxproj
4
- Debug /
4
+ Debug /
5
+ test.cpp
Original file line number Diff line number Diff line change
1
+ #include < iostream>
2
+ #include < string>
3
+ #include < cstring>
4
+ #include < algorithm>
5
+ using namespace std ;
6
+ int main ()
7
+ {
8
+ string str;
9
+ while (cin >> str) {
10
+ int len = str.size () + 1 ;
11
+ int **DP = new int *[len];
12
+ for (int i = 0 ; i < len; i++) {
13
+ DP[i] = new int [len];
14
+ memset (DP[i], 0 , sizeof (int )*len);
15
+ }
16
+ for (int i = 1 ; i < len; i++) {
17
+ for (int j = i - 1 ; j >= 0 ; j--) {
18
+ DP[j][i] = max (DP[j][i - 1 ], 1 );
19
+ for (int k = j; k < i - 1 ; k++) {
20
+ if (str[i - 1 ] == str[k]) {
21
+ DP[j][i] = max (DP[j][i], DP[k + 1 ][i - 1 ] + 2 );
22
+ break ;
23
+ }
24
+ else {
25
+ DP[j][i] = max (DP[j][i], DP[k + 1 ][i - 1 ]);
26
+ }
27
+ }
28
+ }
29
+ }
30
+ cout << len - 1 - DP[0 ][len - 1 ] << endl;
31
+ for (int i = 0 ; i < len; i++) {
32
+ delete[] DP[i];
33
+ }
34
+ delete[] DP;
35
+ }
36
+ return 0 ;
37
+ }
Original file line number Diff line number Diff line change
1
+ #include < iostream>
2
+ #include < string>
3
+ #include < algorithm>
4
+ using namespace std ;
5
+ int main ()
6
+ {
7
+ string str;
8
+ while (cin >> str) {
9
+ for (int k = 0 ; k < str.size (); k++) {
10
+ bool stop = true ;
11
+ for (int i = str.size () - 1 ; i > 0 ; i--) {
12
+ if (str[i - 1 ] >= ' A' &&str[i - 1 ] <= ' Z' && (str[i]<' A' || str[i]>' Z' )) {
13
+ swap (str[i - 1 ], str[i]);
14
+ stop = false ;
15
+ }
16
+ }
17
+ if (stop) break ;
18
+ }
19
+ cout << str << endl;
20
+ }
21
+ return 0 ;
22
+ }
Original file line number Diff line number Diff line change
1
+ #include < iostream>
2
+ #include < limits.h>
3
+ #include < map>
4
+ using namespace std ;
5
+ struct Num { int num, count; };
6
+ int main ()
7
+ {
8
+ int n, temp;
9
+ while (cin >> n) {
10
+ map<int , int > data;
11
+ for (int i = 0 ; i < n; i++) {
12
+ cin >> temp;
13
+ data[temp]++;
14
+ }
15
+ Num *num = new Num[data.size ()];
16
+ int p = 0 , numMin = 0 ;
17
+ for (map<int , int >::iterator it = data.begin (); it != data.end (); ++it, ++p) {
18
+ num[p].num = it->first ;
19
+ num[p].count = it->second ;
20
+ numMin += num[p].count *(num[p].count - 1 ) / 2 ;
21
+ }
22
+ if (numMin == 0 ) {
23
+ int minNum = INT_MAX;
24
+ for (int i = 0 ; i < p - 1 ; i++) {
25
+ if (num[i + 1 ].num - num[i].num < minNum) {
26
+ minNum = num[i + 1 ].num - num[i].num ;
27
+ numMin = num[i + 1 ].count *num[i].count ;
28
+ }
29
+ else if (num[i + 1 ].num - num[i].num == minNum) {
30
+ numMin += num[i + 1 ].count *num[i].count ;
31
+ }
32
+ }
33
+ }
34
+ cout << numMin << " " << num[0 ].count *num[p - 1 ].count << endl;
35
+ delete[] num;
36
+ }
37
+ return 0 ;
38
+ }
You can’t perform that action at this time.
0 commit comments