{"problem":{"name":"string[_view]","description":{"content":"你需要模拟一个简单的 C++ 程序，该程序的每一行必然为如下两种形式之一： - `string <variable-name>(<initializer>);` - `string_view <variable-name>(<initializer>);` 其中 `variable-name` 为声明的变量名（保证之前未出现过，且长度不超过 $10$），`initializer` 为初始化该变","description_type":"Markdown"},"platform":"Luogu","limit":{"time_limit":1000,"memory_limit":524288},"difficulty":{"LuoguStyle":"P2"},"is_remote":true,"is_sync":true,"sync_url":null,"sign":"LGP9680"},"statements":[{"statement_type":"Markdown","content":"你需要模拟一个简单的 C++ 程序，该程序的每一行必然为如下两种形式之一：\n\n- `string <variable-name>(<initializer>);`\n- `string_view <variable-name>(<initializer>);`\n\n其中 `variable-name` 为声明的变量名（保证之前未出现过，且长度不超过 $10$），`initializer` 为初始化该变量的内容，可以是：\n\n- 字符串字面量，即用双引号引起的字符串（形如 `\"abc\"`）；\n- 之前出现过的变量名 `source`，此时应将 `source` 对应的字符串赋给 `variable-name`。\n\n具体而言，将任意一个字符串 $s$ 赋给 string 类型会进行 $|s|$ 次字符拷贝，而赋给 string\\_view 类型不会拷贝字符。其中 $|s|$ 为字符串 $s$ 的长度。\n\n你需要计算出该程序中字符拷贝的总次数。\n\n## Input\n\n第一行输入一个整数 $L$，代表程序行数。\n\n接下来 $L$ 行，输入一段代码。\n\n## Output\n\n输出一个整数，代表字符拷贝总次数。\n\n[samples]\n\n## Background\n\nC++ 的 string 类是一个功能强大的字符串类，然而由于其字符串算法和内存管理绑定的机制，所以在处理 C 风格字符串时效率低下。\n\n为了解决这个问题，C++17 标准引入了 string\\_view 类型，将内存管理和字符串算法分离，从而更好地适配了 C 风格字符串的处理。\n\n## Note\n\n  对于每组数据，保证代码长度均不超过 $10^4$（不包括换行符）。\n\n保证字符串字面量（除去两侧引号）和变量名中只有拉丁字母，且给定的代码严格满足题目要求。\n\n### 子任务\n\n|  #   |            特殊性质            | 分值 |\n| :--: | :----------------------------: | :--: |\n|  0   |              样例              | 0  |\n|  1   | 所有变量均为 string\\_view 类型 | 10 |\n|  2   |    只使用字符串字面量初始化    | 20 |\n|  3   |               -                | 70 |\n\n---\n\n好消息：GCC 9.3.0 支持 string_view。\n\n坏消息：NOI 不开 C++17。","is_translate":false,"language":"English"}],"meta":{"iden":"LGP9680","tags":["模拟","字符串","洛谷原创","O2优化","洛谷月赛"],"sample_group":[["6\nstring a(\"cxyakioi\");\nstring_view b(\"cxyakapio\");\nstring c(b);\nstring_view d(a);\nstring_view cxyakioi(c);\nstring cxyakapio(d);","25"]],"created_at":"2026-03-03 11:09:25"}}