acgo题库
  • 首页
  • 题库
  • 学习
  • 天梯
  • 备赛

    竞赛

    • CSP-J/S
    • 蓝桥杯

    考级

    • GESP
    • CPA
    • 电子学会考级
  • 竞赛
  • 讨论
  • 团队
  • 商城
登录
注册
题目详情提交记录(0)
  • ac

    #include <cstdio> using namespace std; int i,j,n,than_2_bigger_idx; // than_2_bigger_idx: 数组里第一个>=2的元素的下标 long long *arr,ans; signed main(void) { // 个人代码风格 scanf("%d",&n); arr=new long long[n]; // 合法的动态定义数组长度 for(;i<n;i++) scanf("%lld",arr+i); for(i=0;i<n;i++) { ans+=arr[i]/3; // 如果这种长度的边数量大于3,则做等边三角形 arr[i]%=3; // 剩下的边数 while(arr[i]--) { // 剩下的边只能用来做等腰三角形 for(j=than_2_bigger_idx;j<n;j++) if(arr[j]>=2) { // 找到等腰三角形需要的两个腰 arr[j]-=2,ans++; break; } than_2_bigger_idx=j; // 优化时间,我一开始就是因为没优化而TLE } } printf("%lld",ans); // 输出 delete[] arr; // 释放内存 return 0; }

    userId_undefined
    AC不了一点
    造物者题解仙人贪心·贪心尝试者递归·套娃学徒倔强青铜
    1阅读
    0回复
    1点赞
  • 执行用时和内存消耗击败100%用户的代码

    因为边都是2的次幂,所以只会出现等边三角形和等腰(腰更长)三角形

    userId_undefined
    HHT2011
    110阅读
    2回复
    2点赞
  • 【正经题解】荒岛求生

    userId_undefined
    AC君
    管理员倔强青铜
    90阅读
    0回复
    1点赞
暂无数据

提交答案之后,这里将显示提交结果~

首页