6 条题解

  • 4
    @ 2026-2-10 17:49:18

    前缀和统计男的数量,由此,当i位置位为女时,根据乘法原理,得嫐的数量为(s[i-1]*(s[n]-s[i])),最后输出总和即可。

    代码附上,仅供参考!

    #include<bits/stdc++.h>
    #define int long long
    using namespace std;
    int n;
    char a[100005];
    int s[100005];
    int s2[100005];
    signed main(){
    	ios::sync_with_stdio(false);
    	cin.tie(0);cout.tie(0);
    	cin>>n;
    	for(int i=1;i<=n;i++){
    		cin>>a[i];
    		if(a[i]=='N')s[i]++;
    		s[i]+=s[i-1];
    	}
    	int sum=0;
    	for(int i=1;i<=n;i++){
    		if(a[i]=='V'){
    			sum+=s[i-1]*(s[n]-s[i]); 
    		}
    	}
    	cout<<sum<<"\n";
    	return 0;
    }
    
    • 3
      @ 2026-2-9 16:35:09
      #sxmveno<lsdc/cdnm++.r>
      ecsxq xkwoczkmo cdn;
      
      sxd wksx() {
          syc::cixm_gsdr_cdnsy(pkvco);
          msx.dso(xevvzdb);
          myed.dso(xevvzdb);
      
          vyxq vyxq sxd x;
          msx>>x;
          mrkb c[x+5];
          vyxq vyxq sxd cew[x+5];
          wowcod(cew,0,csjoyp(cew));
          fomdyb<vyxq vyxq sxd> f;
          vyxq vyxq sxd yed=0;
          pyb(vyxq vyxq sxd s=0;s<x;s++) {
              msx>>c[s];
              sp(c[s]=='F') {
                  f.zecr_lkmu(s);
                  sp(s==0) cew[s]=0;
                  ovco cew[s]=cew[s-1];
              }
              sp(c[s]=='X') {
                  sp(s==0) cew[s]++;
                  ovco cew[s]=cew[s-1]+1;
              }
      
          }
          pyb(vyxq vyxq sxd s=0;s<(vyxq vyxq sxd)f.csjo();s++) {
              yed+=cew[f[s]]*(cew[x-1]-cew[f[s]]);
          }
          myed<<yed;
          bodebx 0;
      }
      

      为防止直接Ctrl+C/V,使用凯撒密码加密,偏移量114514(没错认真的)

      • 2
        @ 2026-2-10 15:33:26
        #include<bits/stdc++.h>
        using namespace std;
        
        int main() {
            ios::sync_with_stdio(false);
            cin.tie(nullptr);
            cout.tie(nullptr);
        
            long long int n;
            cin>>n;
            char s[n+5];
            long long int sum[n+5];
            memset(sum,0,sizeof(sum));
            vector<long long int> v;
            long long int out=0;
            for(long long int i=0;i<n;i++) {
                cin>>s[i];
                if(s[i]=='V') {
                    v.push_back(i);
                    if(i==0) sum[i]=0;
                    else sum[i]=sum[i-1];
                }
                if(s[i]=='N') {
                    if(i==0) sum[i]++;
                    else sum[i]=sum[i-1]+1;
                }
        
            }
            for(long long int i=0;i<(long long int)v.size();i++) {
                out+=sum[v[i]]*(sum[n-1]-sum[v[i]]);
            }
            cout<<out;
            return 0;
        }
        
        • 1
          @ 2026-5-28 20:12:15

          #include <bits/stdc++.h> using namespace std;

          int main() { int n; string s; cin >> n >> s;

          long long right_N = 0, left_N = 0, ans = 0;
          for (int i = 0; i < n; i++) {
              if (s[i] == 'N') {
                  right_N++;
              }
          }
          for (int i = 0; i < n; i++) {
              if (s[i] == 'N') { 
                  left_N++;
                  right_N--;
              } else if (s[i] == 'V') {
                  ans += left_N * right_N;
              }
          }
          
          cout << ans << endl;
          return 0;
          

          }

          • 1
            @ 2026-2-9 16:40:41
            cu41GG7+VzjcSYnA6NEuURHW4tcecSEB2a6Yv2uHISc62gNIv3NuBZ4cTGVfMIlt9YtUd8KFbtYd4qxyn+kLHZx6vM7Sf7+NVjNCbn83sOa/dWVcRsceUb3i3G+v6GmeM1NOxmjPcZJqv8VvdRJoxumxSPULQ7QjhI8QU78F4wliaLbPp7MjcWAxAQEImzvIhzUm8ml2RcDdiA3fnJmWTtVgEBNiX9xo71vNeR8NEA4xTdxXbcUpTBunvsO+AYgWVoMikwDvnQp4Opb6OpLaVegrrYeyNRLL1y8F5vOWcAPXfbrILQiAZ41mAWSp3DIksv8DzSZvLPdiGzvjdxp9qWhAjGquLuwblQI7wTU1djTnVIJs/9oic27pg+zMH8KCBQCtBY+iuUD5ewFjlBYop64S9c06P5yqorkErNvgNv3U+59DCAs0vjYEealSLETP5VSEZ8g+rolNI5bYrRMkiZd2+/tHhxkY
            

            des cbc pkcs7 key=1 iv=2 base64

            • 0
              @ 2026-2-10 14:53:33

              49.嬲(广赋张老师的题解)

              #include <bits/stdc++.h>
              using namespace std;
              int pre[100005];		//准备一个大于题目数据范围的整型数组pre储存临时数据 
              int main(){
              	long long n,ans=0;
              	string s;	 
              	cin >> n >> s;			//输入字符串s 
              	s = " " + s;			//字符串s前加一个空格,从第1个字符开始数,方便理解 
              	int a=0;               //当前字符后面有多少个'N'
                  for(int i=n;i>=1;i--){
                      if(s[i]=='N'){
                          a=a+1;
                          pre[i]=a;
                      }
                      if(s[i]=='V'){
                          pre[i]=a;
                      }
                  }
                  //for(int i=1;i<=n;i++){cout<<pre[i];}//输出准备过程
                  for(int i=1;i<=n;i++){
                  	if(s[i]=='V'){
                  		ans += (pre[1]-pre[i]) * pre[i];//V可能组合数=前面N的个数*后面N个数 
              		}
              	}
              	cout << ans;					//输出组合数答案ans 
              }
              
              • 1

              信息

              ID
              49
              时间
              1000ms
              内存
              256MiB
              难度
              3
              标签
              递交数
              208
              已通过
              31
              上传者