バイトジャンプ2020回春招開発岡筆記試験03.16 C++題解
2453 ワード
第1回はオンライン筆記試験に参加して少し緊張して、前に多くのACMに参加したことがあって、心理状態は悪くなくて、80分ぐらい4題を解決しますT!! それから...スレ主投の开発岗、ACコード(解题の顺番によって)を添付して、コードは少しACMの风格があって、みんなが気にしないでください欲張って何も言うことはありません.200->17、ここは1024を減らして、2分 を浪費しました.スキャンして、前から後ろに絶えず更新して、マッチング規則の後でアルファベットを取り除くことができて、中間は少し醜いことを書いて、15-20分
[原句]典型的な二分の答えは、問題を読み終わったらわかるはずだ.epsの精度が足りないと90%しかできません
3.シミュレーション+欲張りは、まず1番をコピーしてオープンループを作り、左から右へ右から左へ最小更新すればいい.
#include
#include
using namespace std;
int main()
{
int n;
while (scanf("%d", &n) != EOF) {
n = 1024 - n;
int ans = 0;
ans += n / 64; n = n - n / 64 * 64;
ans += n / 16; n = n - n / 16 * 16;
ans += n / 4; n = n - n / 4 * 4;
ans += n;
printf("%d
", ans);
}
return 0;
}
#include
#include
#include
using namespace std;
char s[10010];
int main()
{
int T; cin >> T;
for (int i=0; i
[原句]典型的な二分の答えは、問題を読み終わったらわかるはずだ.epsの精度が足りないと90%しかできません
#include
#include
using namespace std;
#define eps 0.00001
int num[100050];
int n, m;
int check(double l) {
int ans = 0;
for (int i=0; i> n >> m;
double minn = 0.0, maxn = 0.0;
for (int i=0; i= eps) {
mid = (minn + maxn) / 2;
if (m > check(mid)) {
// > ,
maxn = mid;
continue;
} else {
// < ,
minn = mid;
continue;
}
}
printf("%.2lf
", mid);
return 0;
}
3.シミュレーション+欲張りは、まず1番をコピーしてオープンループを作り、左から右へ右から左へ最小更新すればいい.
#include
#include
using namespace std;
int n;
int a[100050]; //
int p[100050]; //
int main()
{
int T; cin >> T;
while (T--) {
cin >> n;
for (int i=0; i= p[i+1]) {
p[i+1] = p[i] + 1;
flag = true;
}
}
p[0] = p[n];
for (int i=n; i>0; i--) {
// ,
if (a[i-1] > a[i] && p[i-1] <= p[i]) {
p[i-1] = p[i] + 1;
flag = true;
}
}
p[n] = p[0];
if (!flag) break;
}
long long ans = 0;
for (int i=0; i