前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >GCJ 2008Round1AA 菜鸟踩坑(C++)

GCJ 2008Round1AA 菜鸟踩坑(C++)

作者头像
kalifa_lau
发布2018-04-26 14:57:59
5550
发布2018-04-26 14:57:59
举报
文章被收录于专栏:kalifaの日々kalifaの日々
踩到的坑:
  • 不同于POJ,GCJ有两个测试用例的文档,供你在本地得到输出,我开始的时候下载文档之后直接把文档中的数据复制出来,运行代码时贴上去,也就是,从标准输入流里读了数据。我发现一次需要向.exe里粘贴太多数据的情况下,数据可能粘贴不全。正确操作应该是:直接在源码里写读写文件的代码,否则可能因为复制粘贴出错导致程序出错。
  • 该题的大测试用例中,内积用32位的int放不下,粗略算来内积最大能达到2的43次方,所以我用long long类型存放结果。
  • 开辟大数组的时候最好把数组放在全局变量区,这样可防止栈溢出。
AC源码
代码语言:javascript
复制
#include <cstdio>
#include<iostream>
#include <fstream>
#include <algorithm>
using namespace std;
#define MAX 100000

typedef long long ll;

ll x[MAX];
ll y[MAX];
ll res;
bool comp(ll x,ll y)
{
    return x>y;
}

int main()
{
    ofstream out("small_output.txt");
    ifstream in("A-large-practice.in");
    ll loop;
    in>>loop;
    for(ll i=1;i<=loop;i++)
    {
        res=0;
        ll n;
        in>>n;
        cout<<"n = "<<n<<endl;
        cout<<"thie is no."<<i<<" loop"<<endl;
        ll p;
        ll q;
        for(p=0;p<n;p++)
        {
            in>>x[p];
        }
        cout<<"x over!!!! "<<" p= "<<p<<endl;
        for(q=0;q<n;q++)
        {
            in>>y[q];
        }
        cout<<"y over!!!! "<<" q= "<<q<<endl;
        sort(x,x+n,comp);
        sort(y,y+n);
        for(ll q=0;q<n;q++)
        {
            res+=x[q]*y[q];
        }
        out<<"Case #"<<i<<": "<<res<<endl;
        cout<<" case "<<i<<"write done"<<endl;
    }
    out.close();
    return 0;
}

markdown语法真是好用。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2017.12.26 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 踩到的坑:
  • AC源码
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档