柿子饼同学 发表于 2022-8-20 18:43:59

读入优化问题

想问下, 如果使用 freopen 然后重定向 (10, 11行) , 可不可以使用 7, 8 行的那三个语句, 打比赛用的, cin不这样太慢
#include <bits/stdc++.h>
using namespace std;

int n;

int main(){
    ios::sync_with_stdio(0);
    cin.tie(0); cout.tie(0);
   
    freopen("candy.in", "r", stdin);
    freopen("candy.out", "w", stdout);

    cin >> n;

    cout << n * n * n << endl;
   
    return 0;
}

柿子饼同学 发表于 2022-8-20 18:45:52

自己做实验是可以的, 但是有点不放心,

ExiaGN001 发表于 2022-8-20 19:03:19

可以并且建议用。
(你CSP初赛有把握吗

柿子饼同学 发表于 2022-8-20 19:30:44

ExiaGN001 发表于 2022-8-20 19:03
可以并且建议用。
(你CSP初赛有把握吗

额 , 刚刚过线的水平...{:10_250:}

柿子饼同学 发表于 2022-8-20 19:31:57

ExiaGN001 发表于 2022-8-20 19:03
可以并且建议用。
(你CSP初赛有把握吗

就是 ios::sync_with_stdio 可以用 , cin.tie , cout.tie 都可以用 ?
区别就是 把oj上面的代码前面加个 freopen 嘛

柿子饼同学 发表于 2022-8-20 19:35:01

ExiaGN001 发表于 2022-8-20 19:03
可以并且建议用。
(你CSP初赛有把握吗

多嘴问下, bitset 能用不, __gcd() 能用嘛
是不是 c++14 所有的库都可以用 (像正则表达式 , for(auto i : XXX) 这样的)

ExiaGN001 发表于 2022-8-21 08:38:23

柿子饼同学 发表于 2022-8-20 19:31
就是 ios::sync_with_stdio 可以用 , cin.tie , cout.tie 都可以用 ?
区别就是 把oj上面的代码前面加个...

Csp这种NOIP系列比赛要加freopen
平时在OJ上是不需要加的
C++14的部分最好不要用,可能会出问题。
gcd最好自己写,辗转相除练几次就记下来了
bitset应该可以用,实在不行用bool*

柿子饼同学 发表于 2022-8-21 08:52:10

ExiaGN001 发表于 2022-8-21 08:38
Csp这种NOIP系列比赛要加freopen
平时在OJ上是不需要加的
C++14的部分最好不要用,可能会出问题。


好的 , 谢谢 , 那 c++11 都可以对吧

柿子饼同学 发表于 2022-8-21 09:03:59

ExiaGN001 发表于 2022-8-21 08:38
Csp这种NOIP系列比赛要加freopen
平时在OJ上是不需要加的
C++14的部分最好不要用,可能会出问题。


然后这三个在文件操作上都没事对吧
那比如只用输出一个数字那种 , 要不要加 endl

ExiaGN001 发表于 2022-8-21 11:16:42

柿子饼同学 发表于 2022-8-21 08:52
好的 , 谢谢 , 那 c++11 都可以对吧

说错了,C++14可以用
下面是CCF的原话
摘录自 https://www.noi.cn/xw/2021-09-01/735729.shtml
根据NOI活动的发展形势,NOI科学委员会特对NOI系列活动(包括CSP-J/S在内)中编程语言的使用做如下补充说明:
1、除题面有明确要求外,C++程序编译默认采用的语言标准为C++14;
2、除题面有明确要求并允许以外,禁止在源代码中自行指定任何编译选项;
3、允许使用以下划线开头的库函数或宏,但具有明确禁止操作的库函数和宏除外(禁止操作参见上述第2条,以及《关于NOI系列赛编程语言使用限制的规定》编程通则部分:https://www.noi.cn/gynoi/tlgd/2011-04-14/710432.shtml);
4、已发布的NOI系列赛技术类规则如与本说明冲突,冲突部分以本说明为准;
5、其余未尽事项仍按现有规则执行。
在此重申,凡在NOI系列活动中使用明确禁止的内容者,其源代码将直接判为零分,且不接受就此提出的任何申诉。

ExiaGN001 发表于 2022-8-21 11:17:15

柿子饼同学 发表于 2022-8-21 09:03
然后这三个在文件操作上都没事对吧
那比如只用输出一个数字那种 , 要不要加 endl

我觉得endl不如\n

柿子饼同学 发表于 2022-8-21 13:17:22

ExiaGN001 发表于 2022-8-21 11:17
我觉得endl不如\n

就是如果只输出一行的话 , 末尾需要换行吗

ExiaGN001 发表于 2022-8-21 17:14:05

柿子饼同学 发表于 2022-8-21 13:17
就是如果只输出一行的话 , 末尾需要换行吗

可换可不换
一般OnlineJudge和NOIp系列赛事会自动过滤行尾空格以及文末换行的

柿子饼同学 发表于 2022-8-21 17:57:03

ExiaGN001 发表于 2022-8-21 17:14
可换可不换
一般OnlineJudge和NOIp系列赛事会自动过滤行尾空格以及文末换行的

ok
那是每个测试点一个文件还是共用一个文件(输入输出)

ExiaGN001 发表于 2022-8-21 18:33:57

柿子饼同学 发表于 2022-8-21 17:57
ok
那是每个测试点一个文件还是共用一个文件(输入输出)

如果题目名是Apple的话
那么应该保证有程序源代码Apple.cpp在root/desktop/XX-00xxx(你的准考证号)/Apple里
同时输入数据的文件名为Apple.in,输出文件是Apple.out
以上4个Apple字样(即题目英文名)均严格区分大小写,如果错误会爆零。

ExiaGN001 发表于 2022-8-21 18:35:21

柿子饼同学 发表于 2022-8-21 17:57
ok
那是每个测试点一个文件还是共用一个文件(输入输出)

一个点一个文件,但是各个点的IO都是[题目英文名].in/out。

柿子饼同学 发表于 2022-8-21 18:36:24

ExiaGN001 发表于 2022-8-21 18:33
如果题目名是Apple的话
那么应该保证有程序源代码Apple.cpp在root/desktop/XX-00xxx(你的准考证号)/Appl ...

cspj考试是用 windows 吧{:10_245:}
好的

ExiaGN001 发表于 2022-8-21 18:44:26

柿子饼同学 发表于 2022-8-21 18:36
cspj考试是用 windows 吧
好的

错啦,事NOI Linux啦

柿子饼同学 发表于 2022-8-21 19:38:48

ExiaGN001 发表于 2022-8-21 18:44
错啦,事NOI Linux啦

啊啊啊啊
那我还要学 Linux 指令啊
那还要用 vim ?

ExiaGN001 发表于 2022-8-21 20:03:37

柿子饼同学 发表于 2022-8-21 19:38
啊啊啊啊
那我还要学 Linux 指令啊
那还要用 vim ?

有Geany,codeblocks,vim,VScode(仅编辑器)用
CSPj2/s2一般情况下是上机NOI LINUX2.0(中文/英文),最后评测NOI LINUX2.0
不过部分省会出现上机Windows,最后评测NOI LINUX2.0
j1和s1会考linux指令(见NOI考试大纲
CTS和NOI一定会要求使用NOI Linux2.0
页: [1] 2
查看完整版本: 读入优化问题