#include <stdio.h> #include <string.h> char str[105]; int num[26]; int main() { scanf("%s", str); for (int i = 0; i < strlen(str); i++) { num[str[i] - ‘a‘]++; } int ans = 0; num[‘n‘ - ‘a‘]--; while (num[‘n‘ - ‘a‘] >= 2 && num[‘e‘ - ‘a‘] >= 3 && num[‘t‘ - ‘a‘] >= 1 && num[‘i‘ - ‘a‘] >= 1) { num[‘n‘ - ‘a‘] -= 2; num[‘e‘ - ‘a‘] -= 3; num[‘t‘ - ‘a‘] -= 1; num[‘i‘ - ‘a‘] -= 1; ans++; } printf("%d\n", ans); return 0; }B:
#include <stdio.h> #include <string.h> const int N = 175; int n; double w[N][N], a[N][N], b[N][N]; int main() { int i, j; scanf("%d", &n); for (i = 0; i< n; i++) for (j = 0; j < n; j++) scanf("%lf", &w[i][j]); for (i = 0; i < n; i++) for (j = 0; j < n; j++) { a[i][j] = (w[i][j] + w[j][i]) / 2; b[i][j] = (w[i][j] - w[j][i]) / 2; } for (i = 0; i < n; i++) { for (j = 0; j < n - 1; j++) { printf("%.8lf ", a[i][j]); } printf("%.8lf\n", a[i][j]); } for (i = 0; i < n; i++) { for (j = 0; j < n - 1; j++) { printf("%.8lf ", b[i][j]); } printf("%.8lf\n", b[i][j]); } return 0; }
#include <stdio.h> #include <string.h> #include <math.h> int main () { __int64 n, ans = 0; scanf("%I64d", &n); double R = n; __int64 tmp = n; for (int i = 1; i <= n; i++) { double r = i; __int64 k = sqrt(R*R - r*r); if (tmp - k == 0) ans += 1; else ans += tmp - k; tmp = k; } if (n == 0) printf("1\n"); else printf("%I64d\n", ans * 4); return 0; }
#include <stdio.h> #include <string.h> #define INF 0x3f3f3f3f3f3f3f #define min(a,b) ((a)<(b)?(a):(b)) #define max(a,b) ((a)>(b)?(a):(b)) __int64 dp[45][3][3]; int n; __int64 solve() { for (int i = 2; i <= n; i++) { for (int j = 0; j < 3; j++) { for (int k = 0; k < 3; k++) { if (j == k) continue; dp[i][j][k] = min(dp[i][j][k], min(dp[i - 1][j][3 - j - k], dp[i - 1][j][k] + dp[i - 1][k][3 - j - k]) + dp[1][j][k] + min(dp[i - 1][3 - j - k][k], dp[i - 1][3 - j - k][j] + dp[i - 1][j][k])); dp[i][j][k] = min(dp[i][j][k], min(dp[i - 1][j][k], dp[i - 1][j][3 - j - k] + dp[i - 1][3 - j - k][k]) + dp[1][j][3 - j - k] + min(dp[i - 1][k][j], dp[i - 1][k][3 - j - k] + dp[i - 1][3 - j - k][j]) + dp[1][3 - j - k][k] + min(dp[i - 1][j][k], dp[i - 1][j][3 - j - k] + dp[i - 1][3 - j - k][k])); } } } if (n == 1) dp[n][0][2] = min(dp[n][0][2], dp[n][0][1] + dp[n][1][2]); return dp[n][0][2]; } int main() { int i, j, k; for (i = 0; i <= 40; i++) for (j = 0; j < 3; j++) for (k = 0; k < 3; k++) { dp[i][j][k] = INF; } for (i = 0; i < 3; i++) for (j = 0; j < 3; j++) scanf("%I64d", &dp[1][i][j]); scanf("%d", &n); printf("%I64d\n", solve()); return 0; }
Codeforces Round #230 (Div. 2)
原文:http://blog.csdn.net/accelerator_/article/details/19521531