活动介绍
file-type

深入探究Node.js运行机制:为何Node.js在运行?

下载需积分: 10 | 5KB | 更新于2025-08-22 | 47 浏览量 | 0 下载量 举报 收藏
download 立即下载
Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境,它使得开发者可以在服务器端使用 JavaScript 进行开发。Node.js 的出现,让 JavaScript 成为了一个既可以在浏览器端也可以在服务器端运行的语言,从而实现了从前端到后端的全栈开发。然而,在开发过程中,开发者可能会遇到 Node.js 正在运行,但不知道背后具体原因的情况。这种情况可能让人困惑,因此本文将深入探讨 Node.js 的运行机制、调试技巧和剖析工具,帮助开发者更好地理解和控制 Node.js 应用。 首先,Node.js 的运行机制是基于事件驱动、非阻塞 I/O 模型。这意味着 Node.js 使用事件循环来处理并发,即当一个 Node.js 进程执行时,它会持续地监听事件,一旦事件发生,就会触发回调函数进行处理,这样可以有效避免多线程编程中常见的线程安全问题和同步问题。对于开发者来说,了解事件循环的各个阶段是非常重要的,因为不当的代码可能会导致事件循环阻塞,从而影响应用性能。 Node.js 的事件循环包括以下几个阶段: 1. timers:此阶段执行由 setTimeout() 和 setInterval() 回调。 2. I/O callbacks:执行几乎所有的回调函数,除了 close 事件的回调、定时器和 setImmediate()。 3. idle, prepare:仅系统内部使用。 4. poll:获取新的I/O事件,执行与 I/O 相关的回调。 5. check:setImmediate() 回调函数在此执行。 6. close callbacks:一些关闭事件的回调,如 socket.on('close', ...)。 调试 Node.js 应用时,开发者可以使用内置的调试器或者是第三方的调试工具。对于简单的调试任务,Node.js 提供了内建的 repl 环境,允许开发者交互式地执行代码片段和检查变量。对于更复杂的调试需求,可以使用像 Chrome DevTools 或 Visual Studio Code 这样的工具。这些工具允许开发者设置断点、逐步执行代码、监视变量值等。 此外,理解代码中的性能瓶颈也是了解 Node.js 运行情况的一个重要方面。为了帮助开发者定位性能问题,Node.js 提供了多种性能分析工具。比如,内置的 v8-profiler 模块可以用来收集 CPU 和内存使用信息。Node.js 的内置工具如 node-inspector 也允许开发者连接到 Node.js 的 V8 引擎,进行更深层次的调试和性能分析。 而“why-is-node-running”这个标题引出了开发者对于 Node.js 进程可能存在的疑问:为什么 Node.js 进程正在运行,但当前没有明确的操作导致它的启动?这通常发生在长时间运行的应用中,比如 Web 服务器或者后台服务。一个进程可能会因为各种原因一直运行,包括未正确关闭的数据库连接、定时任务、队列处理机制,或者某些持续的 I/O 操作。 Node.js 的运行可能还与 Node.js 模块的热重载有关。热重载是指在代码更改后,无需重启应用即可立即应用更改。Node.js 应用在开发过程中往往会利用热重载功能来提高开发效率。在生产环境中,热重载功能也可以通过一些框架和工具实现,这样可以在不影响用户服务的情况下,更新代码。 综上所述,Node.js 的运行机制、调试、性能分析以及理解其可能运行的原因是掌握 Node.js 开发的关键知识点。这些知识点不仅帮助开发者更有效地开发 Node.js 应用,还有助于在出现问题时快速定位并解决。掌握了这些知识后,开发者可以更自信地面对复杂的 Node.js 运行环境,提升开发和维护应用的能力。

相关推荐

filetype

D:\jiankang\client_home>npm run serve > [email protected] serve > vue-cli-service serve Browserslist: caniuse-lite is outdated. Please run: npx update-browserslist-db@latest Why you should do it regularly: https://github.com/browserslist/update-db#readme INFO Starting development server... WARN A new version of sass-loader is available. Please upgrade for best experience. 98% after emitting CopyPlugin WARNING Compiled with 1 warning 下午8:53:47 warning in ./src/views/user/collect.vue?vue&type=style&index=0&id=c78b4e00&scoped=true&lang=css& Module Warning (from ./node_modules/postcss-loader/src/index.js): Warning (9:3) start value has mixed support, consider using flex-start instead @ ./node_modules/vue-style-loader??ref--7-oneOf-1-0!./node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--7-oneOf-1-2!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/views/user/collect.vue?vue&type=style&index=0&id=c78b4e00&scoped=true&lang=css& 4:14-415 15:3-20:5 16:22-423 @ ./src/views/user/collect.vue?vue&type=style&index=0&id=c78b4e00&scoped=true&lang=css& @ ./src/views/user/collect.vue @ ./src/router/index.js @ ./src/main.js @ multi (webpack)-dev-server/client?http://10.148.12.80:8081&sockPath=/sockjs-node (webpack)/hot/dev-server.js ./src/main.js App running at: - Local: http://localhost:8081/ - Network: http://10.148.12.80:8081/ Note that the development build is not optimized. To create a production build, run npm run build. 怎么解决

filetype

> [email protected] serve > turbo-ui-cli-service serve WARN dependency "typescript" already built-in please remove it INFO Starting development server... 10% building 1/1 modules 0 activei 「wds」: Project is running at https://localhost.huawei.com:9090/webpack-dev-server/ i 「wds」: webpack output is served from undefined i 「wds」: Content not from webpack is served from D:\code\one-card-demo-vue3\public ERROR Failed to compile with 3 errors 15:01:49 error in ./src/cards/home-vue3/custom-panel.vue Syntax Error: TypeError: Cannot read properties of undefined (reading 'styles') @ ./src/cards/home-vue3/index.ts 4:0-39 9:2-7 @ ./src/index.ts @ multi (webpack)-dev-server/client?https://localhost.huawei.com:9090/sockjs-node (webpack)/hot/dev-server.js ./src/index error in ./src/cards/no-permission-vue3/index.vue Syntax Error: TypeError: Cannot read properties of undefined (reading 'styles') @ ./src/cards/no-permission-vue3/index.ts 2:0-32 5:2-7 @ ./src/index.ts @ multi (webpack)-dev-server/client?https://localhost.huawei.com:9090/sockjs-node (webpack)/hot/dev-server.js ./src/index error in ./src/cards/home-vue3/index.vue Syntax Error: TypeError: Cannot read properties of undefined (reading 'styles') @ ./src/cards/home-vue3/index.ts 2:0-32 8:2-7 @ ./src/index.ts @ multi (webpack)-dev-server/client?https://localhost.huawei.com:9090/sockjs-node (webpack)/hot/dev-server.js ./src/index

filetype

> [email protected] serve > vue-cli-service serve Browserslist: caniuse-lite is outdated. Please run: npx update-browserslist-db@latest Why you should do it regularly: https://github.com/browserslist/update-db#readme INFO Starting development server... 10% building 0/1 modules 1 active ...oot vue社团管理系统\源码\client\node_modules\webpack\hot\dev-server.js ./src/10% building 2/2 modules 0 activeError: error:0308010C:digital envelope routines::unsupported at new Hash (node:internal/crypto/hash:79:19) at Object.createHash (node:crypto:139:10) at module.exports (C:\Users\Lenovo\Desktop\springboot vue社团管理系统\源码\client\node_modules\webpack\lib\util\createHash.js:135:53) at NormalModule._initBuildHash (C:\Users\Lenovo\Desktop\springboot vue社团管理系统\源码\client\node_modules\webpack\lib\NormalModule.js:417:16) at handleParseError (C:\Users\Lenovo\Desktop\springboot vue社团管理系统\源码\client\node_modules\webpack\lib\NormalModule.js:471:10) at C:\Users\Lenovo\Desktop\springboot vue社团管理系统\源码\client\node_modules\webpack\lib\NormalModule.js:503:5 at C:\Users\Lenovo\Desktop\springboot vue社团管理系统\源码\client\node_modules\webpack\lib\NormalModule.js:358:12 at C:\Users\Lenovo\Desktop\springboot vue社团管理系统\源码\client\node_modules\loader-runner\lib\LoaderRunner.js:373:3 at iterateNormalLoaders (C:\Users\Lenovo\Desktop\springboot vue社团管理系统\源码\client\node_modules\loader-runner\lib\LoaderRunner.js:214:10) at iterateNormalLoaders (C:\Users\Lenovo\Desktop\springboot vue社团管理系统\源码\client\node_modules\loader-runner\lib\LoaderRunner.js:221:10) at C:\Users\Lenovo\Desktop\springboot vue社团管理系统\源码\client\node_modules\loader-runner\lib\LoaderRunner.js:236:3 at runSyncOrAsync (C:\Users\Lenovo\Desktop\springboot vue社团管理系统\源码\client\node_modules\loader-runner\lib\LoaderRunner.js:130:11) at iterateNormalLoaders (C:\Users\Lenovo\Desktop\springboot vue社团管理系统\源码\client\node_modules\loader-runner\lib\LoaderRunner.js:232:2) at Array.<anonymous> (C:\Users\Lenovo\Desktop\springboot vue社团管理系统\源码\client\node_modules\loader-runner\lib\LoaderRunner.js:205:4) at Storage.finished (C:\Users\Lenovo\Desktop\springboot vue社团管理系统\源码\client\node_modules\enhanced-resolve\lib\CachedInputFileSystem.js:55:16) at C:\Users\Lenovo\Desktop\springboot vue社团管理系统\源码\client\node_modules\enhanced-resolve\lib\CachedInputFileSystem.js:91:9 10% building 2/4 modules 2 active ...esktop\springboot vue社团管理系统\源码\client\node_modules\webpack\hot\dev-se10% building 2/5 modules 3 active ...ref--14-0!C:\Users\Lenovo\Desktop\springboot vue社团管理系统\源码\client\src\main.jsnode:internal/crypto/hash:79 this[kHandle] = new _Hash(algorithm, xofLen, algorithmId, getHashCache()); ^ Error: error:0308010C:digital envelope routines::unsupported at new Hash (node:internal/crypto/hash:79:19) at Object.createHash (node:crypto:139:10) at module.exports (C:\Users\Lenovo\Desktop\springboot vue社团管理系统\源码\client\node_modules\webpack\lib\util\createHash.js:135:53) at NormalModule._initBuildHash (C:\Users\Lenovo\Desktop\springboot vue社团管理系统\源码\client\node_modules\webpack\lib\NormalModule.js:417:16) at handleParseError (C:\Users\Lenovo\Desktop\springboot vue社团管理系统\源码\client\node_modules\webpack\lib\NormalModule.js:471:10) at C:\Users\Lenovo\Desktop\springboot vue社团管理系统\源码\client\node_modules\webpack\lib\NormalModule.js:503:5 at C:\Users\Lenovo\Desktop\springboot vue社团管理系统\源码\client\node_modules\webpack\lib\NormalModule.js:358:12 at C:\Users\Lenovo\Desktop\springboot vue社团管理系统\源码\client\node_modules\loader-runner\lib\LoaderRunner.js:373:3 at iterateNormalLoaders (C:\Users\Lenovo\Desktop\springboot vue社团管理系统\源码\client\node_modules\loader-runner\lib\LoaderRunner.js:214:10) at Array.<anonymous> (C:\Users\Lenovo\Desktop\springboot vue社团管理系统\源码\client\node_modules\loader-runner\lib\LoaderRunner.js:205:4) at Storage.finished (C:\Users\Lenovo\Desktop\springboot vue社团管理系统\源码\client\node_modules\enhanced-resolve\lib\CachedInputFileSystem.js:55:16) at C:\Users\Lenovo\Desktop\springboot vue社团管理系统\源码\client\node_modules\enhanced-resolve\lib\CachedInputFileSystem.js:91:9 at C:\Users\Lenovo\Desktop\springboot vue社团管理系统\源码\client\node_modules\graceful-fs\graceful-fs.js:123:16 at FSReqCallback.readFileAfterClose [as oncomplete] (node:internal/fs/read/context:68:3) { opensslErrorStack: [ 'error:03000086:digital envelope routines::initialization error', 'error:0308010C:digital envelope routines::unsupported' ], library: 'digital envelope routines', reason: 'unsupported', code: 'ERR_OSSL_EVP_UNSUPPORTED' }

filetype

PS D:\face\r\android> yarn example android info A dev server is already running for this project on port 8082. info Installing the app... > Configure project :react-native-nitro-inspire-faceplugin:compileKotlin [NitroModules] ? nitroinspireface is boosted by nitro! > Configure project :react-native-nitro-modules [NitroModules] ? Your app is boosted by nitro modules! [Incubating] Problems report is available at: file:///D:/face/r/example/android/build/reports/problems/problems-report.html Deprecated Gradle features were used in this build, making it incompatible with Gradle 9.0. You can use '--warning-mode all' to show the individual deprecation warnings and determine if they come from your own scripts or plugins. For more on this, please refer to https://docs.gradle.org/8.12/userguide/command_line_interface.html#sec:command_line_warnings in the Gradle documentation. 10 actionable tasks: 10 executed info 💡 Tip: Make sure that you have set up your development environment correctly, by running npx react-native doctor. To read more about doctor command visit: https://github.com/react-native-community/cli/blob/main/packages/cli-doctor/README.md#doctor FAILURE: Build failed with an exception. * Where: Build file 'D:\face\r\example\node_modules\react-native-reanimated\android\build.gradle' line: 53 * What went wrong: A problem occurred evaluating project ':react-native-reanimated'. > Process 'command 'node'' finished with non-zero exit value 1 * Try: > Run with --stacktrace option to get the stack trace. > Run with --info or --debug option to get more log output. > Run with --scan to get full insights. > Get more help at https://help.gradle.org. BUILD FAILED in 1m 7s error Failed to install the app. Command failed with exit code 1: gradlew.bat app:installDebug -PreactNativeDevServerPort=8082 FAILURE: Build failed with an exception. * Where: Build file 'D:\face\r\example\node_modules\react-native-reanimated\android\build.gradle' line: 53 * What went wrong: A problem occurred evaluating project ':react-native-reanimated'. > Process 'command 'node'' finished with non-zero exit value 1 * Try: > Run with --stacktrace option to get the stack trace. > Run with --info or --debug option to get more log output. > Run with --scan to get full insights. > Get more help at https://help.gradle.org. BUILD FAILED in 1m 7s.

filetype

#include <bits/stdc++.h> #define ll long long #define lb(x) x&(-x) using namespace std; const ll N=2e5; struct node{ ll l,r,suml,sumr,sl,sr,ans; }tr[4*N+5]; ll n,m,t; ll yy[N+5],pp[N+5],r[N+5],rr[N+5]; ll get(ll x,ll y){ ll s=0,ss=0; // cout<<x<<" "<<y<<" "; for(ll i=y-1;i;i-=lb(i)){ s+=rr[i]; } for(ll i=x-1;i;i-=lb(i)){ ss+=rr[i]; } // cout<<s-ss<<endl; return s-ss; } void updata(ll p,ll l,ll r){ ll mid=(l+r)>>1; tr[p].sl=min(tr[2*p].sl+get(mid,r),tr[2*p+1].sl); tr[p].sr=min(tr[2*p].sr,tr[2*p+1].sr+get(l,mid+1)); tr[p].suml=min(tr[2*p].suml+get(mid,r),tr[2*p+1].suml); tr[p].sumr=min(tr[2*p+1].sumr+get(l,mid+1),tr[2*p].sumr); tr[p].ans=tr[2*p].suml+tr[2*p+1].sumr+get(mid,mid+1); tr[p].ans=min(tr[p].ans,tr[2*p].sl+tr[2*p+1].sr+get(mid,mid+1)); tr[p].ans=min(tr[p].ans,min(tr[2*p].ans,tr[2*p+1].ans)); return; } void build(ll p,ll l,ll r){ if(l==r){ tr[p].l=l; tr[p].r=r; tr[p].suml=tr[p].sr=yy[l]; tr[p].sumr=tr[p].sl=pp[l]; tr[p].ans=yy[l]+pp[l]; return; } ll mid=(l+r)>>1; build(2*p,l,mid); build(2*p+1,mid+1,r); tr[p].l=tr[2*p].l; tr[p].r=tr[2*p+1].r; updata(p,tr[p].l,tr[p].r); return; } void change(ll p,ll x){ if(tr[p].l==tr[p].r){ tr[p].suml=yy[x]; tr[p].sumr=pp[x]; tr[p].ans=yy[x]+pp[x]; return; } ll mid=(tr[p].l+tr[p].r)>>1; if(x<=mid) change(2*p,x); else change(2*p+1,x); updata(p,tr[p].l,tr[p].r); return; } int main(){ scanf("%lld%lld%lld",&n,&m,&t); for(ll i=1;i<=n;i++) scanf("%lld",&yy[i]); for(ll i=1;i<=n;i++) scanf("%lld",&pp[i]); for(ll i=1;i<n;i++){ scanf("%lld",&r[i]); for(ll j=i;j<n;j+=lb(j)) rr[j]+=r[i]; } build(1,1,n); // for(ll i=1;i<=40;i++){ // cout<<tr[i].l<<" "<<tr[i].r<<" "; // cout<<tr[i].suml<<" "<<tr[i].sumr<<" "<<tr[i].ans<<endl; // } // return 0; printf("%lld\n",tr[1].ans); while(m--){ char op; ll x,y; cin>>op; scanf("%lld%lld",&x,&y); if(op=='r'){ for(ll i=x;i<n;i+=lb(i)){ rr[i]-=r[x]; rr[i]+=y; } r[x]=y; change(1,x),change(1,x+1); } else if(op=='p'){ pp[x]=y; change(1,x); } else{ yy[x]=y; change(1,x); } printf("%lld\n",tr[1].ans); } return 0; } ## **题目描述** 阿杰在游戏中管理着 $n$ 座编号为 $1$ 至 $n$ 的城市。每座城市有一个矿场和一个发电厂。他需要完成以下过程: 1. **采矿**:在任意城市 $i$ 的矿场开采矿物,花费 $y_i$(可为负,表示收益)。 2. **运输**:通过道路将矿物运送到任意城市 $j$ 的发电厂。相邻城市 $i$ 与 $i+1$ 间的道路费用为 $r_i$(双向且相同,可为负但不允许重复经过同一条道路)。 3. **发电**:在城市 $j$ 的发电厂消耗矿物发电,花费 $p_j$(可为负)。 **总花费**为三部分之和:$y_i + p_j + \text{运输路径费用}$。目标是选择起点 $i$ 和终点 $j$,使总花费最小(负花费表示净收益)。 游戏会动态更新费用:共 $m$ 个事件,每个事件将某个 $y_i$、$p_i$ 或 $r_i$ 修改为 $c$。需要实时输出每次更新后的最小总花费。 ## **输入格式** - **第一行**:$n, m, T$(城市数、事件数、测试点编号)。 - **第二行**:$n$ 个整数 $y_1, y_2, \dots, y_n$(采矿费用)。 - **第三行**:$n$ 个整数 $p_1, p_2, \dots, p_n$(发电费用)。 - **第四行**:$n-1$ 个整数 $r_1, r_2, \dots, r_{n-1}$(道路费用,$r_i$ 连接城市 $i$ 和 $i+1$)。 - **接下来 $m$ 行**:每行格式为 `t i c`: - $t \in \{ \texttt{y}, \texttt{p}, \texttt{r} \}$ 表示修改的费用类型。 - $i$ 表示被修改的城市编号($t=\texttt{r}$ 时 $i$ 表示道路编号,范围 $1 \le i \le n-1$)。 - $c$ 为新费用值(绝对值 $\le 10^{12}$)。 ## **输出格式** - **共 $m+1$ 行**: - 第 $1$ 行:初始状态的最小花费。 - 第 $2$ 至 $m+1$ 行:每次事件后的最小花费。 ## **样例** #### 输入样例 ```plaintext 10 10 0 12 12 17 28 42 55 60 73 73 91 89 89 79 77 54 38 34 24 24 0 2 4 2 1 4 3 7 10 10 p 2 92 p 3 87 r 4 3 r 1 9 r 2 4 r 5 3 y 10 72 y 8 67 r 2 0 y 4 91 ``` #### 输出样例 ```plaintext 53 53 53 55 55 55 54 54 54 50 50 ``` ## **数据范围** | 测试点 | $n$ | $m$ | 费用可为负 | $y_i=0$ | $p_i=0$ | |:------:|:-----:|:-------:|:------:|:----:|:-------:| | 1 | $500$ | $500$ | 否 | 否 | 否 | | 2 | $500$ | $500$ | 是 | 否 | 否 | | 3 | $3000$ | $3000$ | 否 | 否 | 否 | | 4 | $3000$ | $3000$ | 是 | 否 | 否 | | 5 | $2\times10^5$ | $2\times10^5$ | 是 | 是 | 是 | | 6–10 | $2\times10^5$ | $2\times10^5$ | 混合 | 混合 | 混合 | **特殊约束**: - 若“费用可为负”为**否**,则所有费用(含修改后)$\ge 0$。 - 若 $y_i=0$ 为**是**,则所有 $y_i=0$ 且无 `y` 类型事件;$p_i=0$ 同理。 --- ### **题目补充说明** 1. **道路特性**: - 道路双向通行且费用相同,但**不允许重复使用**(即使 $r_i<0$ 也不能多次经过同一条路获利)。 - 运输路径是简单路径(无环路)。 2. **发电过程**: - 采矿和发电必须在**不同或相同城市**完成(即 $i$ 和 $j$ 可相同,此时运输费用为 $0$)。 - 总花费计算式:$\text{min}_{1 \le i,j \le n} \left\{ y_i + p_j + \text{dis}(i,j) \right\}$,其中 $\text{dis}(i,j)$ 是 $i$ 到 $j$ 的路径费用和。 3. **事件限制**: - `r i c` 事件中 $i$ 为道路编号($1 \le i \le n-1$),修改连接 $i$ 和 $i+1$ 的道路费用。 答案错误,找错误

filetype

题目描述 现有一个空整数序列 A = ( ) A=()。你需要按顺序处理 Q Q个查询操作,查询分为两种类型: 类型 1 1:格式为1 c x。将 c c个 x x添加到 A A的末尾。 类型 2 2:格式为2 k。从 A A中移除前 k k个元素,并输出被移除的 k k个整数之和。保证此时序列长度不小于 k k。 约束条件 1 ≤ Q ≤ 2 × 10 5 1≤Q≤2×10 5 在类型 1 1查询中, 1 ≤ c ≤ 10 9 1≤c≤10 9 在类型 1 1查询中, 1 ≤ x ≤ 10 9 1≤x≤10 9 在类型 2 2查询中,设此时 A A的长度为 n n,则 1 ≤ k ≤ min ⁡ ( 10 9 , n ) 1≤k≤min(10 9 ,n) 所有输入值均为整数 输入格式 输入通过标准输入给出,格式如下: Q Q query 1 query 1 ​ query 2 query 2 ​ ⋮ ⋮ query Q query Q ​ 其中 query i query i ​ 表示第 i i个查询,其格式为以下两种之一: 1 1 c c x x 2 2 k k 输出格式 设共有 q q个类型 2 2查询。输出 q q行, 第 i i行应包含对第 i i个类型 2 2查询的应答结果。 样例1 Inputcopy Outputcopy 5 1 2 3 1 4 5 2 3 1 6 2 2 5 11 19 第 1 1次查询:将 2 2个 3 3添加到 A A末尾。此时序列变为 A = ( 3 , 3 ) A=(3,3) 第 2 2次查询:将 4 4个 5 5添加到 A A末尾。此时序列变为 A = ( 3 , 3 , 5 , 5 , 5 , 5 ) A=(3,3,5,5,5,5) 第 3 3次查询:移除 A A中前 3 3个元素。被移除的 3 3个整数之和为 3 + 3 + 5 = 11 3+3+5=11,故输出 11 11。移除后序列为 A = ( 5 , 5 , 5 ) A=(5,5,5) 第 4 4次查询:将 6 6个 2 2添加到 A A末尾。此时序列变为 A = ( 5 , 5 , 5 , 2 , 2 , 2 , 2 , 2 , 2 ) A=(5,5,5,2,2,2,2,2,2) 第 5 5次查询:移除 A A中前 5 5个元素。被移除的 5 5个整数之和为 5 + 5 + 5 + 2 + 2 = 19 5+5+5+2+2=19,故输出 19 19。移除后序列为 A = ( 2 , 2 , 2 , 2 ) A=(2,2,2,2) 样例2 Inputcopy Outputcopy 10 1 75 22 1 81 72 1 2 97 1 84 82 1 2 32 1 39 57 2 45 1 40 16 2 32 2 42 990 804 3024 样例3 Inputcopy Outputcopy 10 1 160449218 954291757 2 17217760 1 353195922 501899080 1 350034067 910748511 1 824284691 470338674 2 180999835 1 131381221 677959980 1 346948152 208032501 1 893229302 506147731 2 298309896 16430766442004320 155640513381884866 149721462357295680 cpp: #include <bits/stdc++.h> #define int long long using namespace std; int q; signed main() { cin >> q; queue<int> a; while (q--) { int n; cin >> n; if (n == 1) { int c, x; cin >> c >> x; for (int i = 1; i <= c; i++) a.push(x); } else if (n == 2) { int k, sum = 0; cin >> k; for (int i = 1; i <= k; i++) { sum += a.front(); a.pop(); } cout << sum << endl; } } return 0; } 优化cpp

weixin_39840387
  • 粉丝: 792
上传资源 快速赚钱