1. 桩子与雪
村子里有一些桩子,从左到右高度依次为1,1+2,1+2+3…,每两颗桩子之间的间隔为1.现在下了一场大雪,
但是不知道雪下了多厚,现在给你两个数字,这是雪后某相邻两个桩子在雪面的高度,请你通过这两个数字计算雪的厚度。
简单计算
int main(int argc, char *argv[]) {
int a,b;
cin>>a>>b;
int sub = b-a;
cout<<(1+sub)*sub/2-b;
return 0;
}
2. 拼接积木
牛牛有一种锯齿状的积木,这种积木比较长,但是每个单位长度的高度是相等的,高度为1或者2。
现在牛牛拿出了两块长度分别为n 和 m 的积木,她现在想把这两块积木拼接在一起,即使中间有空隙也没有关系。
但是拼接后的积木的高度要不超过 3,请你帮助牛牛计算在满足这个前提下拼接后的积木的长度最短可以是多少。
暴力模式串匹配
int main(int argc, char *argv[]) {
int n,m;
cin>>n>>m;
string wood1; string wood2;
cin>>wood1>>wood2;
int res = m + n;
for(int i=0;i<n;i++){
int idx1 = i; int idx2 = 0;
while(idx1<n&&idx2<m){
int h = (wood1[idx1]-'0')+(wood2[idx2]-'0');
if(h==4) break;
idx1++;idx2++;
}
if(idx1==n||idx2==m)
res = min(res,i+max(n-i,m));
}
for(int i=0;i<m;i++){
int idx1 = 0; int idx2 = i;
while(idx1<n&&idx2<m){
int h = (wood1[idx1]-'0')+(wood2[idx2]-'0');
if(h==4) break;
idx1++;idx2++;
}
if(idx1==n||idx2==m)
res = min(res,i+max(m-i,n));
}
cout<<res;
return 0;
}
3. 牛牛回家
牛牛所在的国家有n座城市,m条有向道路,第i条道路由城市通往城市,通行费为。
作为一头豪气的牛,希望他回家的花费是一个特殊的数字(例如666元)。具体的说,牛牛希望从城市1移动到城市n,并恰好花费a元y
请你告诉牛牛,他有多少种回家的方案?
标签:17,积木,int,桩子,2024.08,cin,牛牛,拼接,京东
From: https://www.cnblogs.com/929code/p/18401148