bestcoder #66

1002:

这题拿两个优先队列维护一下就可以了,近期都在做这种题,然而这题居然还是不会,why am i so stupid...

#include<bits/stdc++.h>
#define REP(i,a,b) for(int i=a;i<=b;i++)
#define MS0(a) memset(a,0,sizeof(a))
#define lson l,m,rt<<1
#define rson m+1,r,rt<<1|1

using namespace std;

typedef long long ll;
const int maxn=1000100;
const int INF=1<<29;

int n,m;
ll a[maxn],b[maxn],c[maxn];
ll t[maxn];

int main()
{
    freopen("in.txt","r",stdin);
    int T;cin>>T;
    while(T--){
        scanf("%d%d",&n,&m);
        REP(i,1,n) scanf("%I64d%I64d",&a[i],&b[i]);
        REP(i,1,m) scanf("%I64d",&c[i]);sort(c+1,c+m+1);
        MS0(t);
        REP(i,1,m) t[c[i]]++;
        priority_queue<ll,vector<ll>,greater<ll> > q[2];
        ll add=0;
        REP(i,1,n){
            b[i]-=add;
            while(!q[!a[i]].empty()&&q[!a[i]].top()<b[i]) q[!a[i]].pop();
            q[a[i]].push(b[i]);
            add+=t[i];
        }
        cout<<q[0].size()+q[1].size()<<endl;
    }
    return 0;
}

1003:

这题和上学期校赛的第五题如出一辙,就是打表找规律,上学期我也是靠着第五题混了个校赛第七,然而这次居然没出。。why am i so stupid...

注意打表不是手动计算!!!直接用代码循环打表!

#include<bits/stdc++.h>
#define MS0(a) memset(a,0,sizeof(a))
#define REP(i,a,b) for(int i=a;i<=b;i++)

using namespace std;

typedef long long ll;
const int maxn=1000100;
const int INF=1<<29;

ll n,x;

ll phi(ll n)
{
    ll m=(ll)sqrt(n+0.5);
    ll res=n;
    REP(i,2,m){
        if(n%i==0){
            res=res/i*(i-1);
            while(n%i==0) n/=i;
        }
    }
    if(n>1) res=res/n*(n-1);
    return res;
}

int main()
{
    freopen("in.txt","r",stdin);
    while(~scanf("%I64d%I64d",&n,&x)){
        printf("%I64d\n",phi(n+x+1));
    }
    return 0;
}

时间: 2024-12-31 13:46:45

bestcoder #66的相关文章

BestCoder Round #66 (div.2)B GTW likes gt

思路:一个O(n)O(n)的做法.我们发现b_1,b_2,...,b_xb?1??,b?2??,...,b?x??都加11就相当于b_{x+1},b_{x+2},...,b_nb?x+1??,b?x+2??,...,b?n??都减11.然后我们可以倒着做,记一下最大值,如果遇到了修改操作,就把最大值减11,然后判断一下这个人会不会被消灭掉,然后再更新一下最大值. 1 #define cn(i,p,q) for(int i=p;i<=q;i++) 2 #define cn1(i,p,q) for(

BestCoder Round #66 (div.2)

构造 1002 GTW likes gt 题意:中文题面 分析:照着题解做的,我们可以倒着做,记一下最大值,如果遇到了修改操作,就把最大值减1,然后判断一下这个人会不会被消灭掉,然后再更新一下最大值.不知道其他的做法是怎么样的 #include <cstdio> #include <algorithm> #include <cstring> using namespace std; #define lson l, mid, o << 1 #define rs

BestCoder Round #66 (div.2) hdu5592

GTW likes math Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 131072/131072 K (Java/Others)Total Submission(s): 942    Accepted Submission(s): 426 Problem Description After attending the class given by Jin Longyu, who is a specially-graded t

HDU 5596/BestCoder Round #66 (div.2) GTW likes math 签到

GTW likes math Memory Limit: 131072/131072 K (Java/Others) 问题描述 某一天,GTW听了数学特级教师金龙鱼的课之后,开始做数学<从自主招生到竞赛>.然而书里的题目太多了,GTW还有很多事情要忙(比如把妹),于是他把那些题目交给了你.每一道题目会给你一个函数f(x)=ax^2+bx+cf(x)=ax?2??+bx+c,求这个函数在整数区间[l,r][l,r]之间的最值. 输入描述 第一行一个整数T,表示数据组数.(T\leq 1000T≤

HDU5597/BestCoder Round #66 (div.2) GTW likes function 打表欧拉函数

GTW likes function Memory Limit: 131072/131072 K (Java/Others) 问题描述 现在给出下列两个定义: f(x)=f_{0}(x)=\sum_{k=0}^{x}(-1)^{k}2^{2x-2k}C_{2x-k+1}^{k},f_{n}(x)=f(f_{n-1}(x))(n\geq 1)f(x)=f?0??(x)=∑?k=0?x??(−1)?k??2?2x−2k??C?2x−k+1?k??,f?n??(x)=f(f?n−1??(x))(n≥1

BestCoder Round #66 (div.2) 1002

GTW likes gt Accepts: 132 Submissions: 772 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 131072/131072 K (Java/Others) 问题描述 从前,有nn只萌萌的GT,他们分成了两组在一起玩游戏.他们会排列成一排,第ii只GT会随机得到一个能力值b_ib?i??.在第ii秒的时候,第ii只GT可以消灭掉所有排在他前面的和他不是同一组的且能力值小于他的GT. 为了使游戏更加有趣,

【BestCoder】【Round#42】

模拟+链表+DP Orz AK爷faebdc A Growin要跟全部的n个人握手共2n杯香槟,再加上每对关系的两杯香槟,直接统计邻接矩阵中1的个数,再加2n就是answer 1 //BestCoder 42 A 2 #include<vector> 3 #include<cstdio> 4 #include<cstring> 5 #include<cstdlib> 6 #include<iostream> 7 #include<algor

BestCoder Round #4 前两题 hdu 4931 4932

第一题太水了.. 1 #include<iostream> 2 #include<cstdio> 3 #include<cstring> 4 #include<algorithm> 5 using namespace std; 6 int a[6]; 7 int main(){ 8 int cas; 9 scanf( "%d", &cas ); 10 while( cas-- ){ 11 for( int i = 0; i <

hdu 5480|| bestcoder   #57 div 2 Conturbatio(前缀和||树状数组)

Conturbatio Time Limit: 6000/3000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)Total Submission(s): 211    Accepted Submission(s): 99 Problem Description There are many rook on a chessboard, a rook can attack the row and column it bel