zoukankan      html  css  js  c++  java
  • 北京邀请赛 B. Beautiful Garden

    题意:给你坐标和n个点,求最少移动的点使得n个点成等差数列

    思路:既然要成等差数列,那么最起码有两个点是不动的,然后枚举这两个点中间的点的个数,近期水的要死,看了队友的代码做的

    #include <iostream>
    #include <cstdio>
    #include <cstring>
    #include <algorithm>
    #include <cstdlib>
    #include <cmath>
    using namespace std;
    const double eps = 1e-9;
    const int INF = 0x3f3f3f3f;
    
    int n;
    double x[45];
    
    int main() {
    	int cas = 1,t;
    	scanf("%d", &t);
    	while (t--) {
    		scanf("%d", &n);
    		for (int i = 0; i < n; i++) 
    			scanf("%lf", &x[i]);
    		sort(x, x+n);
    		printf("Case #%d: ", cas++);
    		if (n == 1){
    			printf("0
    ");
    			continue;
    		}
    		int ans = INF;
    		for (int i = 0; i < n; i++)
    			for (int j = i+1; j < n; j++) 
    				for (int k = 1; k < n; k++) {
    					int count = 0;
    					double d = (x[j]-x[i])/k;
    					double cur = x[i]-d;
    					int cnt = 0;
    					for (int l = 0; l < n; l++) {
    						cur += d;
    						while (x[cnt] < cur && cnt < n)
    							cnt++;
    						if (cnt == n)
    							break;
    						if (fabs(cur-x[cnt]) < eps) {
    							count++;
    							cnt++;	
    						}
    					}
    					ans = min(ans, n-count);
    				}
    		printf("%d
    ", ans);
    	}
    	return 0;
    }



查看全文
  • 相关阅读:
    python入门:字符编码
    python入门:字符串2
    使用keepalived实现高可用
    基于sersync实现实时同步
    kubeadm 的工作原理
    docker-stop不能停止容器
    kubernetes 中的证书工作机制
    docker-hub中python的tag都代表什么意思
    MFS 介绍
    安装sngrep线路抓包工具
  • 原文地址:https://www.cnblogs.com/ldxsuanfa/p/10894130.html
  • Copyright © 2011-2022 走看看