求助

P1223 排队接水

这题应该不用用文件操作吧,用贪心就行了
by tyzc114514 @ 2022-08-13 14:22:30


给你我的代码,参考参考
by tyzc114514 @ 2022-08-13 14:23:04


@[godd2010](/user/764552) 这个sort用的不对,所以会WA。 因为你for循环存数据的时候 $i$ 从 $1$ 开始循环,所以sort应该是 ```cpp sort(a+1,a+n+1); ```
by Daben1 @ 2022-08-13 14:23:57


@[liuzejiang](/user/292653) 哪里用文件操作了啊
by Daben1 @ 2022-08-13 14:25:06


@[godd2010](/user/764552) 最后一个for里面i=i
by 你的洛 @ 2022-08-13 14:27:02


``` #include<bits/stdc++.h> using namespace std; int main(){ int n; int a[1005]; int id[1005]; scanf("%d",&n); for(int i=1;i<=n;i++){ scanf("%d",&a[i]);//输入 id[i]=i;//记录 } for(int i=1;i<=n;i++){ int index=i; for(int j=i+1;j<=n;j++){ if(a[j]<a[index]||a[index]==a[j]&&id[j]<id[index]) index=j;//选择排序 } if(index!=i){ swap(a[i],a[index]); swap(id[i],id[index]);//顺序交换 } } double sum=0.0; for(int i=1;i<=n;i++){ printf("%d ",id[i]); sum+=a[i]*(n-i)*1.0;//最后的计算 } printf("\n"); printf("%.2lf\n",sum*1.0/n); return 0; } ```
by tyzc114514 @ 2022-08-13 14:27:49


@[Daben1](/user/540201) 说错了,是结构体
by tyzc114514 @ 2022-08-13 14:29:20


@[你的洛](/user/295509) 我看到了,已经调到82分了,您再看一下我改完的这个还有没有问题 ```cpp #include<iostream> #include<cstdio> #include<iomanip> #include<algorithm> using namespace std; int n; struct ren { int name; long long time; }a[10000]; bool cmp(ren a, ren b) { return a.time < b.time; } int main() { cin >> n; for (int i = 1; i <= n; i++) { cin >> a[i].time; a[i].name = i; } sort(a+1, a + n+1, cmp); for (int i = 1; i <= n; i++) { cout << a[i].name << " "; } cout << endl; int sum = 0; for (int i = 1; i <= n; i++) { sum += a[i].time * (n - i); } cout << fixed << setprecision(2) << 1.0 * sum / n; return 0; } ```
by Daben1 @ 2022-08-13 14:31:23


@[liuzejiang](/user/292653) 不管是什么,咱得按人家思路走,这里是解决问题的,不是教学的
by Daben1 @ 2022-08-13 14:32:38



by godd2010 @ 2022-08-13 14:33:35


| 下一页