生活随笔
收集整理的這篇文章主要介紹了
春季每日一题2022 Week 1 【完结】
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
目錄
- 3346. 你知道你的ABC嗎【排序】
- 3358. 放養但沒有完全放養【貪心】
- 3370. 牛年【模擬】
- 3745. 牛的學術圈 I【二分】
- 1459. 奶牛體操【暴力】
- 1442. 單詞處理器【模擬】
3346. 你知道你的ABC嗎【排序】
#include<bits/stdc++.h>
using namespace std
;
typedef long long int LL
;
LL a
[15];
int main(void)
{for(int i
=0;i
<7;i
++) cin
>>a
[i
];sort(a
,a
+7);LL b
=a
[6]-a
[4];LL a1
=a
[6]-a
[5];LL c
=a
[6]-a1
-b
;cout
<<a1
<<" "<<b
<<" "<<c
<<endl
;return 0;
}
3358. 放養但沒有完全放養【貪心】
就看下一個字母是在它的前面還是后面,再后面說明可以是同一首,否則重新起一首。
#include<bits/stdc++.h>
using namespace std
;
string a
,b
;
int cnt
[35];
int main(void)
{cin
>>a
>>b
;for(int i
=0;i
<a
.size();i
++) cnt
[a
[i
]-'a']=i
;int last
=-1,ans
=1;for(int i
=0;i
<b
.size();i
++){if(cnt
[b
[i
]-'a']>last
) last
=cnt
[b
[i
]-'a'];else ans
++,last
=cnt
[b
[i
]-'a'];}cout
<<ans
;
}
3370. 牛年【模擬】
說明他們的相對位置是唯一確定的。
#include<bits/stdc++.h>
using namespace std
;
map
<string
,int>mp
;
map
<string
,int>d
;
string s
[12]={"Ox","Tiger","Rabbit","Dragon","Snake","Horse","Goat","Monkey","Rooster","Dog","Pig","Rat"};
int main(void)
{int t
; cin
>>t
;mp
["Bessie"]=0,d
["Bessie"]=0;string a
; getline(cin
,a
);for(int i
=0;i
<t
;i
++){getline(cin
,a
);string name1
=a
.substr(0,a
.find(' '));string name2
=a
.substr(a
.rfind(' ')+1);int k
=0;for(int i
=0;i
<12;i
++){if(a
.find(s
[i
])!=-1){k
=i
; break;}}mp
[name1
]=k
;if(a
.find("previous")!=-1){if(mp
[name1
]>=mp
[name2
]) d
[name1
]=d
[name2
]-(12-mp
[name1
]+mp
[name2
]);else d
[name1
]=d
[name2
]-(mp
[name2
]-mp
[name1
]);}else{if(mp
[name1
]<=mp
[name2
]) d
[name1
]=d
[name2
]+(12-mp
[name2
]+mp
[name1
]);else d
[name1
]=d
[name2
]+(mp
[name1
]-mp
[name2
]);}}cout
<<abs(d
["Elsie"]);return 0;
}
3745. 牛的學術圈 I【二分】
注意:每個論文最多加1.
#include<bits/stdc++.h>
using namespace std
;
typedef long long int LL
;
const int N
=1e5+10;
LL n
,m
,a
[N
];
bool check(int mid
)
{int cnt
=0,sum
=0;for(int i
=n
-1;i
>=0;i
--){if(a
[i
]>=mid
) cnt
++;else{if(a
[i
]+1>=mid
&&sum
<m
) sum
++,cnt
++;else break;}}return cnt
>=mid
;
}
int main(void)
{cin
>>n
>>m
;for(int i
=0;i
<n
;i
++) cin
>>a
[i
];sort(a
,a
+n
);int l
=0,r
=n
;while(l
<r
){int mid
=l
+r
+1>>1;if(check(mid
)) l
=mid
;else r
=mid
-1;}cout
<<l
;return 0;
}
1459. 奶牛體操【暴力】
#include<bits/stdc++.h>
using namespace std
;
const int N
=25;
int a
[N
][N
],n
,m
;
int main(void)
{cin
>>m
>>n
;for(int i
=0;i
<m
;i
++)for(int j
=0;j
<n
;j
++) cin
>>a
[i
][j
];int ans
=0;for(int i
=1;i
<=n
;i
++){int cnt
[N
]={0};for(int j
=0;j
<m
;j
++){int index
=0;for(int k
=0;k
<n
;k
++)if(a
[j
][k
]==i
) {index
=k
;break;}for(int k
=index
+1;k
<n
;k
++) cnt
[a
[j
][k
]]++;}for(int j
=1;j
<=n
;j
++)if(cnt
[j
]==m
) ans
++;}cout
<<ans
;return 0;
}
1442. 單詞處理器【模擬】
#include<bits/stdc++.h>
using namespace std
;
const int N
=1e5+10;
string a
[N
];
int n
,m
;
int main(void)
{cin
>>n
>>m
;for(int i
=0;i
<n
;i
++) cin
>>a
[i
];int sum
=0;for(int i
=0;i
<n
;i
++){if(sum
+a
[i
].size()<=m
) cout
<<a
[i
]<<" ",sum
+=a
[i
].size();else puts(""),sum
=a
[i
].size(),cout
<<a
[i
]<<" ";}return 0;
}
總結
以上是生活随笔為你收集整理的春季每日一题2022 Week 1 【完结】的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。