1 条题解
-
0
自动搬运
来自洛谷,原作者为

a1a2a3a4a5
蒟蒻可骂,私信互关,互关者备故事来搬运于
2025-08-24 22:50:41,当前版本为作者最后更新于2023-10-07 20:05:49,作者可能在搬运后再次修改,您可在原文处查看最新版自动搬运只会搬运当前题目点赞数最高的题解,您可前往洛谷题解查看更多
以下是正文
P9680 string[_view]
题意
- 两个字符类型,一个字符类型花费次数,一个不花费,花费次数是字符串长度。
- 在“赋给
string_view类型不会拷贝字符。”中,赋给的意思就是等号右边的字符串类型是string_view的不会拷贝字符。
思路
- 首先是一堆麻烦的边角料,咱给他按模拟的思路去了。
- 可以发现如果是普通字符串类型,我们字符串内容没什么用,所以定两个
map一个存字符串长度,一个存字符串是不是string_view类型,如果赋字符串变量就赋字符串变量的长度。 - 然后如果要花费直接加长度。
代码
#include<bits/stdc++.h> using namespace std; int l,da; string fw,xiaochou,ming,neirong; map<string,int> len; map<string,bool> lihai; int main() { cin>>l; for(int i=1;i<=l;i++) { cin>>fw>>xiaochou;//俩小丑,咱们用完就把他俩甩了! bool f=0,mao=0;ming="";neirong=""; //mao冒号?ming名字,neirong内容。 for(int i=0;i<xiaochou.size();i++) { char x=xiaochou[i];//把小丑的钱给我家哥哥。 if(x=='('||x==')'||x==';') f=1;//f判断是不是到赋值部分了。 else if(x=='"') mao=1;//独立自主的。 else if(f==0) ming=ming+x;//变量名字。 else neirong=neirong+x; } if(mao)//有冒号? { len[ming]=neirong.size(); lihai[ming]=fw.size()>8?1:0;//你什么血统? if(!lihai[ming]) da+=len[ming];//投胎不好直接制裁! } else//借助前辈的力量。 { len[ming]=len[neirong];//直接啃老。 lihai[ming]=fw.size()>8?1:0;//记录血统! if(!lihai[ming]) da+=len[neirong];//投胎不好继续制裁! } } cout<<da; return 0; }
- 1
信息
- ID
- 8354
- 时间
- 1000ms
- 内存
- 512MiB
- 难度
- 2
- 标签
- 递交数
- 0
- 已通过
- 0
- 上传者