The first week match's conclusion

2023-06-08,,

自我声讨(不是

这周比赛有难也有易,但是我都是写得很少,摸鱼实在太严重,当然技术不到位也是一个方面,主要还是自己的问题。不再讨论

这周比赛学到、用到的的语法如下

快读

int read()
{
int x = 0 , f = 1;
char ch = getchar();
while(ch < '0' || ch > '9'){if(ch == '-') f = -1;ch = getchar();} \\判断负数
while(ch >= '0' && ch <= '9') {x = x * 10 + ch - 48;ch = getchar();}
return x * f;
}

C++带空格的字符串读入

//    for (int i = 1; i <= n; i++) {
// getline(cin,s[i]);
// }

c++读到回车结束这轮输出

for (int i = 1; i <= n; i++) {
for (int j = 1; 1; j++) {
cin >> TY[i][j];
if(cin.get() == '\n')break;
}
}

模拟、标记、二叉树(弱项)、链表(弱项)、二分(弱项)、set的基本用法(有序不重复)

对于不熟悉的、弱项会在自主练习的时间或者其他时间中加强

在练习中比较有意思的题目

1.模拟(往死里模拟(依旧没过)

引以为戒

(https://www.luogu.com.cn/problem/P1148?contestId=96294)

代码篇幅过长只截取一部分有用的条件

 if(win){ //如果有记分牌
if(c10){ //如果有加倍牌
if(win == 16){ //判断是否为赢家
ans[0] = ans[1] = ans[2] = ans[3] = 0;
ans[lis] +=1000;
break;
}else{
if(los == n-1)ans[lis] +=50;//如果只有一张加倍牌
else {
if(h == 13){
ans[lis] = 200;//所有的红心牌视为+200
if(s12)ans[lis] += -100;
if(d11)ans[lis] += 100;
if(s12 && d11)ans[lis]+=500;
ans[lis] *= 2;
}else {
if(s12)ans[lis] += -100;
if(d11)ans[lis] += 100;
ans[lis] *= 2;
}
}
}
}else{
if(h == 13){
ans[lis] = 200;
if(s12)ans[lis] += -100;
if(d11)ans[lis] += 100;
if(s12 && d11) ans[lis]+= 500;
}else{
if(s12)ans[lis] += -100;
if(d11)ans[lis] += 100;
}
}
}else ans[lis] = 0;
后缀表达式

一种新的计算方法(我没学过)

(https://www.luogu.com.cn/problem/P8683?contestId=95102)

/*
*后缀和
* 如(3+4)x 6 - 9;
* 则表示为 3 4 + 6 * 9 -;
*/
sort(TY+1,TY+count+1,cmp);
ll ans=0;
for (int i = 1; i <= add+1; i++) {
ans+=TY[i];
}
for (int i = count; i >= count - dec + 1; i--) {
ans -= TY[i];
}
cout << ans;
return 0;
}

The first week match's conclusion的相关教程结束。

《The first week match's conclusion.doc》

下载本文的Word格式文档,以方便收藏与打印。