文章目录
前言
无心路历程
一、题目分析
A 按位异或
a、b同位对应 1 0 or 0 1,x无影响;0 0 x=0;1 1 x=1;等同于a b 位异或;
故本题只需a^b;(so!为什么提醒第一组数据x=4!!!)
**B **
C 思维+找规律
题意:对一串字符操作(从第二个到倒数第二个字符操作),使其变成回文字符串。R使字符翻转到后面,L翻转到前面。
例如:abcd;R3(n-1)->abcdc L234(2~n-1=n)->dcbabcdc L2->cdcbabcdc;
规律 R->n-1 L->n L2;
D (耐心+脑子)
signed main()
{
int t;
cin >> t;
while(t--) {
int y, x;
cin >> y >> x;
int c1,c2,c3,c4,c5,c6;
cin >> c1 >> c2 >> c3 >> c4 >> c5 >> c6;
c1 = min (c1, c2 + c6);
c2 = min (c2, c1 + c3);
c3 = min (c3, c2 + c4);
c4 = min (c4, c3 + c5);
c5 = min (c5, c4 + c6);
c6 = min (c6, c1 + c5);
int sum =0;
if (y >= 0 && x >= 0) {
sum += min(y, x) * c1 + (y - min(y, x)) * c6 + (x - min(y, x)) * c2;
}
else if (y >= 0 && x < 0) {
sum += y * c6 + x * (-c5);
}
else if (y <= 0 && x > 0) {
sum += y * c3 + x * (-c2);
}
else {
sum += max(y, x) * (-c4) + (max(y, x) - y) * c3 + (max(y, x) - x) * c5;
}
ll ss;
ss = abs(sum);
cout << ss << '\n';
}
return 0;
}
signed?待研究
E 单调栈(读不懂题!!先补知识库叭)
hdu5033
poj3250 2559 3494
F字典序yes
G
H 前缀yes
I 拓扑排序
究竟错哪了! ! !(再看看 再看看 忍住!)
J
K 差分基础yes
L
M 质因数分解
求每个数质因子,最小质因子排序,最小的两个乘积(不能用set,不能去重)
for (ll j = 2; j <= sqrt(a[i]); j++){
while (a[i] % j == 0){
a[i] /= j;
zz.push_back(j);
}
}//复习
二、知识积累
1.单调栈
2.拓扑排序
小结
读不懂题目 枯辽 严重怀疑自己的英语理解
基础知识 差好多
记得把剩下的题补了!