问题标题: 酷町堂:1168 只有90分???

0
0
已解决
高乐彤
高乐彤
新手天翼
新手天翼
#pragma GCC optimize(2)
#pragma GCC optimize(3)
#include<iostream>
#include<cstdio>
#include<cmath>
#include<algorithm>
#include<string>
using namespace std;
int main(){
    int n,a[105],ti,t[105],maxn=-100;
    cin>>ti>>n;
    for(int i=1;i<=n;i++){
        cin>>t[i];
    }for(int i=1;i<=n;i++){
        cin>>a[i];
    }for(int x=1;x<=n;x++){
        for(int y=1;y<=n;y++){
            for(int z=1;z<=n;z++){
                if(x==y||x==z||y==z){
                    continue;
                }if(a[x]+a[y]+a[z]>maxn&&t[x]+t[y]+t[z]<=ti){
                    maxn=a[x]+a[y]+a[z];
                }
            }
        }
    }
    cout<<maxn;
    return 0; 
}

快!!!

90分???

高乐彤在2021-06-20 15:36:36追加了内容

1168   园区最受欢迎指数(best)

经验值:1200 时间限制:1000毫秒

合肥市第32届信息学竞赛

不许抄袭,一旦发现,直接清空经验!

题目描述 Description

在卡卡西和小伙伴们的帮助下,今天整个森林公园的植树任务都提前完成了。园艺工人们看见一排排整齐种植的小树苗,心里别提多高兴了。一阵微风吹来,小树苗们轻轻的弯弯腰,好像在向小朋友们挥手致谢呢!“为了表示对你们的感谢,我们准备了森林动物园的门票作为奖励,卡卡西,你过来,把这些门票发给大家吧……”园艺工人把动物园的门票塞进卡卡西的手里,小朋友们别提多高兴了,欢呼雀跃,满脑子里都是可爱动物的模样!卡卡西正准备把门票发给小朋友,忽然发现这些门票有点特别,票面上什么都没有写。卡卡西忍不住问道:“叔叔,这些门票没有给错吗?怎么上面什么都没有?”“哈哈哈哈,这是神奇的门票,你们只有回答出来我下面的问题,门票上才能出现正确的文字,而且还能带你们直接到达动物园!”天啊,这么神奇,小朋友们都竖起了耳朵,仔细聆听题目。“题目是这样的:动物园里有多个园区,如熊猫园区、老虎园区等,每个单独的动物园区都要排队等候,且每个园区门口都贴有大家评选出来的最受换迎指数。假设进入园区后时间静止,你们能在有限时间内,任意选择游玩3个园区,获得最高的受欢迎指数吗?”卡卡西拍拍胸脯,对小伙伴们满脸自信的说:“放心吧,这个问题交给我,保证大家能正常使用动物园门票!”
聪明的小朋友们,你们知道卡卡西是如何解决出这个问题的吗?

输入描述 Input Description

输入数据有3行,第1行有2个用空格分开的数,表示拥有的总时间t和园区个数n;第2行有n个用空格分开的数,其中,第i个数表示在第i个园区游玩需要的排队时间;第3行有n个用空格分开的数,其中,第i个数表示第i个园区的受欢迎指数。

输出描述 Output Description

最高的受欢迎指数(游玩的3个园区受欢迎指数之和)。

样例输入 Sample Input

9 5 1 2 3 4 5 1 3 2 1 4

样例输出 Sample Output

8

数据范围及提示 Data Size & Hint

数据范围:
0<t≤100 0<n≤100 0<排队时间,欢迎指数≤100

高乐彤在2021-06-30 08:00:44追加了内容

高乐彤在2021-07-04 21:13:32追加了内容

ding


0
已采纳
王一帆
王一帆
中级守护
中级守护

定义int a,s,d[101],f[101],g;
输入s,a
 for循环(定义 i=1,i<=a,i++){
        输入d[i];
    }
for循环(定义 i=1,i<=a,i++){
        输入f[i];
    }
    for循环(定义 i=1,i<=a,i++){
        for循环(定义 j=i+1,j<=a,j++){
            for循环(定义 k=j+1,k<=a,k++){
                如果(d[i]+d[j]+d[k]<=s){
                    如果(f[i]+f[j]+f[k]>g){
                        g=f[i]+f[j]+f[k];
                    }
                }
            }
        }
    }
    输出g

0
武建豪
武建豪
中级天翼
中级天翼

我记得这是课堂题目吧,你是想知道自己哪里错了是吗?

还是说想知道正确答案?

0
0
0
0
0
高乐彤
高乐彤
新手天翼
新手天翼

????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????

0
李沫朴
李沫朴
新手天翼
新手天翼
  • int t,n,ans,w[105],p[105]; int main(){ cin>>t>>n; for(int i=1;i<=n;i++) cin>>w[i]; for(int i=1;i<=n;i++) cin>>p[i]; for(int i=1;i<=n;i++){ for(int j=i+1;j<=n;j++){ for(int k=j+1;k<=n;k++){ if(w[i]+w[j]+w[k]<=t){ ans=max(ans,p[i]+p[j]+p[k]); } } } } cout<<ans; return 0; //freopen("1291.in","r",stdin); //freopen("1291.out","w",stdout); //fclose(stdin); //fclose(stdout); }
我要回答