NC229265. Birthday Cake
描述
输入描述
在输入的第一行,你得到一个整数,表示蛋糕边的长度。
然后跟随 行,每行包含 个字符。空单元格用“.”表示,而包含巧克力的单元格用“C”表示。
输出描述
输出一个整数表示牛牛的幸福值。
示例1
输入:
3 .CC C.. C.C
输出:
4
说明:
示例2
输入:
4 CC.. C..C .CC. .CC.
输出:
9
C++(g++ 7.5.0) 解法, 执行用时: 3ms, 内存消耗: 484K, 提交时间: 2023-05-21 00:06:42
#include <cstdio> #include<algorithm> #include<iostream> using namespace std; int n,s,h[101],l[101]; int main(){ scanf("%d",&n); char a[n]; int s=0; int i; for( i=0;i<n;i++){ scanf("%s",a); for(int j=0;j<n;j++){ if(a[j]=='C') { h[i]+=1; l[j]+=1; s=s+h[i]-1+l[j]-1; } } } printf("%d",s); }
C++ 解法, 执行用时: 3ms, 内存消耗: 496K, 提交时间: 2022-02-09 10:00:29
#include<bits/stdc++.h> using namespace std; int n, x, ans, a[105]; char s[105]; int main(){ scanf("%d", &n); for(int i=1; i<=n; i++, x=0){ scanf("%s", s+1); for(int j=1; j<=n; j++){ if(s[j]=='C') x++, a[j]++; } ans+=x*(x-1)/2; } for(int i=1; i<=n; i++) ans+=a[i]*(a[i]-1)/2; printf("%d", ans); return 0; }
Python3 解法, 执行用时: 45ms, 内存消耗: 4588K, 提交时间: 2023-05-20 17:11:47
dp = [] n=int(input()) for i in range(n): dp.append(input()) ans = 0 for i in range(n): p = dp[i].count('C') ans += p * (p - 1) p = [dp[j][i]for j in range(n)].count('C') ans += p * (p - 1) print(ans >> 1)