codeforces csp复赛训练利器---比赛准备
若没有接触过codeforces先请看此文https://blog.csdn.net/mrcrack/article/details/103155645
codeforces目前印象:
1.提交代码,要以文件的形式,有些不习惯。
2.对long long支持不好,不能出现%lld,预测该网站搭建在windows平台。
3.注释里的文字,有时也会影响评测系统对文件合法性的判断,故提交,最好删除注释内容。
4.比赛比较锻炼人,再多的练习,也不如一场比赛来得酣畅淋漓。
1.找不到 红色Register >>
上图找不到 红色Register >> 如下图所示
原因,请读者仔细看
离开赛还有4天,离注册还有3天,这就是 红色Register >> 找不到的原因。2019-11-20 20:30
红色Register >> 找到了 2019-11-24 10:08
注册成功。
2.linux中的英汉词典
摘自https://blog.csdn.net/clksjx/article/details/85052248
安装goldendict
可以直接在Ubuntu软件商店安装,也可以sudo apt-get install goldendict
安装成功后,在linux 中 点击 应用程序->办公->GoldenDict 找到该软件
运行后,空空如也,需要 离线词典 的导入
离线词典摘自https://blog.csdn.net/halazi100/article/details/44700631
离线词典网盘下载链接补充一个 https://pan.baidu.com/share/link?shareid=443301&uk=3189859145#list/path=%2F&parentPath=%2
下载一个占用空间小的英汉词典,先用着
导入词典,在GoldenDict中,点击 编辑(E)->词典(D) 跳出如下对话框
点击 添加(A) ,载入词典所处位置。
3.Div.3练习
目前印象:
1.提交代码,要以文件的形式,有些不习惯。
2.对long long支持不好,不能出现%lld
3.注释里的文字,有时也会影响评测系统对文件合法性的判断,故提交,最好删除注释内容。
Enter>>
//题意很快看懂,枚举肯定不行,因1≤a,b,n,S≤10^9
//想到了gcd,想到了先扣除b,在编写过程中,逐步想到了/,%.
//样例很快通过,但不急着提交,重新阅读题目,发现存在x=0,存在y=0的情况,需要特殊考虑
/*
造了几组数据
3
0 4 3 4
0 5 3 4
0 3 3 4
YES
YES
NO
果然出问题
3
2 0 3 6
3 0 3 6
1 0 3 6
YES
YES
NO
这组没有问题
3
0 0 3 0
0 0 3 3
0 0 3 1
YES
NO
NO
这组也没有问题
*/
//造的几组数据通过,放心提交。
//提交,出现
//有点傻了,做下一道,还是更正当前。
//想了想,还存在这样的情况
/*
3
2 10 3 16
2 10 3 15
2 10 3 17
YES
YES
NO
马上测试,果然出问题。
*/
//打补丁,上述数据通过,提交。
//else if(s-a*n<=b)printf("YES\n");//打补丁。想了想,确实有问题
/*
如下数据
1
3 1 3 8
NO
*/
//继续打补丁else if(a*n<=s&&s-a*n<=b)printf("YES\n");//继续打补丁。
//提交。
//仔细想了想,a*n 会出现int溢出的情况,需改成long long
/*
提供一组测试数据
1
4 1 536870912 2
NO
*/
//马上将int改成long long
//上述数据通过,提交,出现数据格式问题,如下。
//%lld改成%I64d,linux无法编译通过,硬着头皮提交。
//因为long long的问题,不让提交,要用cin或cout,好吧,那么改成C++
//发现,改成C++后,还是不让提交。
//怎么办呢,codeforces下的long long不让用了?
//那么先改回C,long long改成int,算法上再作修改
//else if(s/n>a&&s-a*n<=b)printf("YES\n");//继续打补丁。 a不够
//提交,还是long long的问题,怀疑是代码中注释文件,含有%lld,那么先清空注释。
//清空注释,提交,终于AC了,一道简单的题,做了1个半小时,收获很多啊。2019-11-21
#include <stdio.h>
int main(){
int q,a,b,n,s;
scanf("%d",&q);
while(q--){
scanf("%d%d%d%d",&a,&b,&n,&s);
if(s<=b)printf("YES\n");//以1为准 b足够
else if(s%n<=b&&s/n<=a)printf("YES\n");//以n为准 a足够
else if(s/n>a&&s-a*n<=b)printf("YES\n");//继续打补丁。 a不够
else printf("NO\n");
}
return 0;
}