バイトジャンプ2020回春招開発岡筆記試験03.16 C++題解

2453 ワード

第1回はオンライン筆記試験に参加して少し緊張して、前に多くのACMに参加したことがあって、心理状態は悪くなくて、80分ぐらい4題を解決しますT!! それから...スレ主投の开発岗、ACコード(解题の顺番によって)を添付して、コードは少しACMの风格があって、みんなが気にしないでください
  • 欲張って何も言うことはありません.200->17、ここは1024を減らして、2分
  • を浪費しました.
    #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; }
  • スキャンして、前から後ろに絶えず更新して、マッチング規則の後でアルファベットを取り除くことができて、中間は少し醜いことを書いて、15-20分
  • #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