2015 ACM ICPC 長春現場賽 部分題解

2021-07-22 09:40:13 字數 1961 閱讀 6934

昨天全隊做了這個比賽,做乙個小小的總結,寫一寫部分題的題解。

【e - rebuild】

【題意】依次輸入n個點的座標,分別為圓心。保證相鄰圓心的距離是個正整數。第n個圓和第1個圓相鄰。要求相鄰兩個圓要相切,求全部圓面積和的最小值,以及此時半徑的取法。

【解題方法】

先根據座標求出相鄰圓心距離依次為a0

,a1,

...,

an−1

設圓半徑分別為x0

,x1,

...,

xn−1

化為方程

然後把這n-1個方程,如果是奇數用當前方程減去下乙個,否則加上下乙個。最後得到的方程為2*x0=(a1-a2+a3-a4....+(-1)^n*a[n-1]),**用last來維護一下這個東西。

【ac **】

#include #include #include #include #include #include using namespace std;

const int maxn = 1e4+10;

const double eps = 1e-8;

const double pi = acos(-1);

struct point

point(){}

void read()

}p[maxn];

double a[maxn];

double dist(point a,point b)

int n;

double solve(double r)

if(n&1)

}double l=minn,r=maxx;

double m,mm;

for(int i=0; i<100; i++)else

}printf("%.2f\n",solve(l));

for(int i=0; if - almost sorted array】

【題意】給乙個序列,你可以刪除乙個元素,如果使得這個序列有序輸出yes,否則輸出no。

【解題方法】lis即可。

【ac **】

#includeusing namespace std;

const int n =2e5;

int a[n],dp[n];

int main()

return 0;

}

【g - dancing stars on me】

【題意】給n個點,判斷能否組成正多邊形。我直接維護了乙個凸包,正解應該是只需要考慮正方形,其他的正多邊形頂點不可能全是整數點。。。。

【ac **】

#include using namespace std;

typedef long long ll;

const int maxn = 110;

struct point

}p[maxn],ans[maxn];

point operator-(point a,point b);}

ll cross(point a,point b)

ll dist(point a,point b)

bool cmp(point a,point b)

int k=m;

for(int i=n-2; i>=0; i--)

if(n>1) m--;

return m;

}int main()

void init()

void insert(int x)

}int ans=0;

for(int i=1;i<=n;i++)

}for(int i=1;i<=n;i++)

}printf("%d\n",ans);

}return 0;

}

解題報告 2015ACM ICPC亞洲區長春站

題目鏈結 分析 不妨先解決這個問題的判斷非降序的部分。既然符合條件的陣列移除乙個數字就能使得整個陣列非降序,那麼我們先統計滿足 a i 1 a i 的i的個數cnt。另外,令idx等於當 cn t 1 時的滿足 a i 1 a i i的值。下面根據cnt的值來分類討論 對非公升序的判斷只要把陣列顛倒...

2012 ACM ICPC 長春賽區網路賽

1001 a problem with integers 題意 有兩種操作,一種是更新區間a b中a i b and i a k 0 的點加上c 一種是詢問aa 的value 思路 明顯的線段樹 但是依然跪倒啊 cnt i k c 代表當前區間i 每隔k個字元累加c,然後就是更新,如果存在要更新的區...

ACM ICPC 區預賽現場VIM配置

acm icpc 區預賽現場vim配置 filetype plugin indent on colo evening set nu set hlsearch set expandtab set syntax on set tabstop 4 set expandtab set shiftwidth ...