求助c++22分

P1909 [NOIP2016 普及组] 买铅笔

鼬先生太强了,1.数组开小了,你开的s[3]只有s[0,1,2]并不包含s[3],以后多开点,别超过1e7就好,然后最后不需要sort,两个min就行,然后中间 ``` s[1]=q/sl[1]*jq[1]+jq[1]; s[2]=q/sl[2]*jq[2]+jq[2]; s[3]=q/sl[3]*jq[3]+jq[3]; ``` 也不对,c++会自动向下取整,要加向上取整的函数ceil,鼬先生,还是纯模拟比较有性价比啊 ``` #include <bits/stdc++.h> using namespace std; struct node { int jg; int sl; int zjg; } a[5]; int main() { int n; scanf("%d",&n); int n1 = n, n2 = n, n3 = n; for (int i = 1; i <= 3; i++) scanf("%d%d",&a[i].sl,&a[i].jg); while (n1 > 0) { n1 = n1 - a[1].sl; a[1].zjg = a[1].zjg + a[1].jg; } while (n2 > 0) { n2 = n2 - a[2].sl; a[2].zjg = a[2].zjg + a[2].jg; } while (n3 > 0) { n3 = n3 - a[3].sl; a[3].zjg = a[3].zjg + a[3].jg; } a[2].zjg = min(a[2].zjg, a[3].zjg); a[1].zjg = min(a[2].zjg, a[1].zjg); printf("%d\n",a[1].zjg); return 0; } ``` AC代码 以后有问题可以私我,身为火批就应该团结友爱
by kmlihaiming @ 2023-11-21 14:17:16


|