关于NOIP

学术版

sjwhsss @ 2024-11-29 00:44:18

RT\ 1.T1贪心一般该往什么方向想,构造题要怎么做,如果遇到了大模拟和可能比较复杂的DP先做哪个,如何判和使用用模拟退火骗分,网上基本找不到资料学\ 2.明天还有半天的时间,是练思维题还是复习板子?\ 3.有没有常见TRICKS总结\ 4.考场上如何写自动对拍程序\ 5.除了y1,y0之类的变量名,还有哪些不能用,NOI Linux下编译能不能检查出来\ 6.SC成都嘉祥考点有没有小熊猫DEVC++


by Kazeno_Akina @ 2024-11-29 03:35:33

@sjwhsss

  1. 贪心什么方向,不知道,没人知道题。模拟和dp怎么选看个人,如果你的码力不能保证你条理清晰地写完4k左右的代码就去搞dp。

  2. 依然看个人。我个人想复习板子。

  3. tricks总结好像不太多,你不如研究一下调试

  4. 细节应该网上有很多博客,直接ofstream到输入文件然后暴力和正解各跑一次,diff一下输出文件就行。

  5. 我记得j0不行。不过这玩意编译大概都能爆出来

  6. 不知道,你问cdjx的。


by zhangbo1000 @ 2024-11-29 06:21:12

@sjwhsss

  1. T1 一般相对简单,而且不一定考贪心。

  2. 摆烂

  3. 有,学术版往前翻一翻能找到很多。

  4. STFW

  5. 头文件里的都不能用,出了问题会编译失败,好查,怕重名可以把自己写的代码放在一个 namespace 里。

  6. 应该没有,看通知。


by Cosine_Func @ 2024-11-29 07:09:13

@sjwhsss 6.有


by HotDogSeller @ 2024-11-29 07:28:31

@sjwhsss

1.如果你可以稳定地做出橙题,你就不需要考虑这个问题。

2.练习板子,并记录下来自己写的时候发生了那些错误,考场上提醒自己。

3.不知道

4.写四个程序,makedata(造数据),standard(标程或暴力),written(你写的)和run(自动对牌),其他三个文件不要开freopen,编译一下,然后在run里输入:

system("./makedata > test.in");
system("./standard < test.in > std.out");
system("./written < test.in > my.out");
if(system("diff std.out my.out"))break;

这个丢进run中的while循环就可以

PS:windows下要这样写:

system("makedata > test.in");
system("standard < test.in > std.out");
system("written < test.in > my.out");
if(system("fc std.out my.out"))break;

5.不知道,但是考场上请避免 小写字母+数字 的变量命名

6.不知道


by xiezheyuan @ 2024-11-29 07:37:59

@sjwhsss

  1. T1一般是橙题吧,应该就是直接模拟没有贪心。NOIp 出的构造题(喵了个喵)一般来说不可做。我反正建议写大模拟,应为大模拟永远不会写假。模拟退火一般用来求多元函数最值,直接去OIWIKI
  2. 板子。
  3. https://www.cnblogs.com/wyb-sen/p/17234499.html
  4. 写程序,暴力和数据生成器,推荐都用C++写,对拍也用C++写,写一个死循环,用system运行程序,比较用 diff -w <A> <B>,A B 中填文件名,比较成功返回 0.
  5. 编译一般可以检查出来,有的不会CE但是会RE(比如 mmap)也要注意。
  6. 自己去问cdjx去,一般来说是没有的,是标准NOI Linux环境(各省应该有少数Windows+Dev C++)

by 201012280925LSY @ 2024-11-29 07:40:38

@sjwhsss

1、先做比较复杂的 DP,构造题要多观察,模拟退火解决的一般是状态数问题,上 oi-wiki 学模拟退火。

2、复习板子(依据个人情况而定)

3、有,问一下谷民们,万能的谷民们会给你的。

4、Windows:

#include<bits/stdc++.h>
using namespace std;
int main()
{
    while(1)
    {
        system("data.exe > data.txt");
        system("my.exe < data.txt > my.out");
        system("bl.exe < data.txt > bl.out");
        if(system("fc my.out bl.out"))break;
    }
    return 0;
}

data.exe:数据生成器生成的可执行文件。

my.exe: 你自己的正解生成的可执行文件。

bl.exe: 暴力生成的可执行文件。

data.txt: 随机出来的数据。

my.out: 正解的答案

bl.out: 暴力的答案。

x < y: 把 y 中的东西输入到 x 中。

x > y : 输出到y

fc x y:比较 x 和 y

注意要放到同一个文件夹当中。

5、挺多的,不清楚。

6、不知道。

能给个关注吗,谢谢。


by qwqszxc45rtnhy678ikj @ 2024-11-29 08:39:38

关于 6:是有的


by qazsedcrfvgyhnujijn @ 2024-11-29 08:39:43

@sjwhsss

前 5 个看楼上

  1. CDJX 回复:CDJX 考点是 Win + NOI Linux 虚拟机的环境,其中 Windows 系统上有小熊猫,甚至还有 Codeblock 和 Vim。

by qazsedcrfvgyhnujijn @ 2024-11-29 08:42:26

哦对了,Bloodshed Dev-C++ 也是有的,不在桌面上,按下 Windows 键就看得到了。


by sjwhsss @ 2024-11-29 10:16:34

@Kazeno_Akina@zhangbo1000@Cosine_Func@HotDogSeller@xiezheyuan@201012280925LSY@qwqszxc45rtnhy678ikj@qazsedcrfvgyhnujijn THX,已关


|