2017 Multi-University Training Contest

来源:互联网 发布:java 生成pdf表格 编辑:程序博客网 时间:2024/05/20 16:12

这场打的很烂、

极角排序都不知道

1005

#include <cstdio>#include <cstring>#include <cmath>#include <cstdlib>#include <ctime>#include <iostream>#include <algorithm>#include <sstream>#include <string>#include <vector>#include <queue>#include <stack>#include <map>#include <set>#include <utility>using namespace std;#define LL long long#define pb push_back#define mk make_pair#define mst(a, b)    memset(a, b, sizeof a)#define REP(i, x, n)    for(int i = x; i <= n; ++i)const int MOD = 1e9 + 7;const int qq = 2e5 + 10;const int INF = 1e9 + 10;int main(){    int t;    scanf("%d", &t);    while(t--) {        int n;    scanf("%d", &n);        printf("%d\n", (n + 1) / 2 + 1);    }    return 0;}



1008

这几天打百度之星现在才把这题补掉、期间做了一些关于极角排序的题目

总算理解了(都怪我高中太狂妄,要定了选做题的几何,就没关极坐标的那个选修)

#include <cstdio>#include <cstring>#include <cmath>#include <cstdlib>#include <ctime>#include <iostream>#include <algorithm>#include <sstream>#include <string>#include <vector>#include <queue>#include <stack>#include <map>#include <set>#include <utility>using namespace std;#define LL long long#define pb push_back#define mk make_pair#define mst(a, b)memset(a, b, sizeof a)#define REP(i, x, n)for(int i = x; i <= n; ++i)const LL MOD = 1e9 + 7;const int qq = 5e4 + 10;const int INF = 1e9 + 10;const double eps = 1e-8;struct Point {int x, y;double angle;LL val;Point(){}Point(int _x, int _y, LL _val) : x(_x), y(_y), val(_val){}bool operator < (const Point &w) const {return angle < w.angle;}}p[qq];int main(){printf("%lf\n", atan(-1. / 0.));int t;scanf("%d", &t);while(t--) {int n;scanf("%d", &n);for(int i = 0; i < n; ++i) {int x, y;LL val;scanf("%d%d%lld", &x, &y, &val);p[i] = Point(x, y, val);p[i].angle = atan(y * 1.0 / x);}sort(p, p + n);/*for(int i = 0; i < n; ++i) {printf("%lf %lf\n", p[i].x, p[i].y);}*/LL sumL, sumR;sumL = sumR = 0;for(int i = 0; i < n; ++i) {if(p[i].x > 0)sumR += p[i].val;elsesumL += p[i].val;}LL maxn = sumL * sumR;for(int i = 0; i < n; ++i) {if(p[i].x > 0) {sumL += p[i].val;sumR -= p[i].val;} else {sumL -= p[i].val;sumR += p[i].val;}maxn = max(maxn, sumL * sumR);}printf("%lld\n", maxn);}return 0;}




1011

队友打表过得

#include <cstdio>#include <cstring>#include <algorithm>using namespace std;typedef long long LL;const int N = 1e7 + 10;const int MOD = 1e9 + 7;int a[N];void init() {    a[1]=1;    a[2]=2;    a[3]=2;    int top=4;    for(int i=3;i<N;i++) {        if(a[top-1]==1) a[top]=2;        else a[top]=1;        if(a[i]==2) {            top++;            a[top]=a[top-1];        }        top++;        if(top>N) break;    }}int main() {    init();    int t,n;    scanf("%d",&t);    while(t--) {        scanf("%d",&n);        printf("%d\n",a[n]);    }    return 0;}


原创粉丝点击