Codeforces Round #103 (Div. 2)

來源:互聯網
上載者:User

A 水

#include <map>#include <set>#include <list>#include <queue>#include <deque>#include <stack>#include <string>#include <cstdio>#include <math.h>#include <iomanip>#include <cstdlib>#include <limits.h>#include <string.h>#include <iostream>#include <fstream>#include <algorithm>using namespace std;#define LL long long#define pii pair<int ,int>#define bug cout<<"here!!"<<endl#define PI acos(-1.0)#define FRE freopen("input.txt","r",stdin)#define FF  freopen("output.txt","w",stdout)#define eps 1e-8#define MIN INT_MIN#define inf 1<<30#define N 440#define M N*Nint a[102];int main(){    int n;    cin>>n;    int i;    int s,t;    int minm = inf,maxm = 0;    for(i=0;i<n;i++){        cin>>a[i];        if(a[i]<=minm){            minm = a[i];            s = i;        }        if(a[i] > maxm){            maxm=  a[i];            t = i;        }    }    if(s<t)    printf("%d\n",n-1-s+t-1);    else printf("%d\n",n-1-s+t);    return 0;}

B 水

#include <map>#include <set>#include <list>#include <queue>#include <deque>#include <stack>#include <string>#include <cstdio>#include <math.h>#include <iomanip>#include <cstdlib>#include <limits.h>#include <string.h>#include <iostream>#include <fstream>#include <algorithm>using namespace std;#define LL long long#define pii pair<int ,int>#define bug cout<<"here!!"<<endl#define PI acos(-1.0)#define FRE freopen("input.txt","r",stdin)#define FF  freopen("output.txt","w",stdout)#define eps 1e-8#define MIN INT_MIN#define inf 1<<30#define N 1005#define M N*Nint x[N],y[N],r[N];int dis(int x1,int y1,int x2,int y2){    return (x1-x2)*(x1-x2) + (y1-y2)*(y1-y2);}int main(){    int x1,y1,x2,y2;    cin>>x1>>y1>>x2>>y2;    int n;    cin>>n;    int i,j;    int cnt=0;    for(i=0;i<n;i++){        cin>>x[i]>>y[i]>>r[i];    }    int xx,yy,xxx,yyy;    xx = min(x1,x2);    xxx = max(x1,x2);    yy = min(y1,y2);    yyy = max(y1,y2);int cc=0;    for(i=xx;i<=xxx;i++){        for(j=yy;j<=yyy;j++){            if(i>xx && i<xxx && j>yy&&j<yyy)continue;            else {cc++;                for(int k=0;k<n;k++){                    if(dis(i,j,x[k],y[k]) <= r[k] * r[k]){                        cnt++;                        break;                    }                }            }        }    }    cout<<cc-cnt<<endl;    return 0;}

C 字串

#include <map>#include <set>#include <list>#include <queue>#include <deque>#include <stack>#include <string>#include <cstdio>#include <math.h>#include <iomanip>#include <cstdlib>#include <limits.h>#include <string.h>#include <iostream>#include <fstream>#include <algorithm>using namespace std;#define LL long long#define pii pair<int ,int>#define bug cout<<"here!!"<<endl#define PI acos(-1.0)#define FRE freopen("input.txt","r",stdin)#define FF  freopen("output.txt","w",stdout)#define eps 1e-8#define MIN INT_MIN#define inf 1<<30#define N 100005#define M N*Nchar s[N];char p[N];int ns[30];int np[30];int wen;int main(){    cin>>s>>p;    int i,j;    int ls = strlen(s);    int lp = strlen(p);    if(lp>ls){        printf("0\n");        return 0;    }wen=0;    for(i=0;i<lp;i++){        np[p[i] - 'a'] ++;        if(s[i]!='?')        ns[s[i] - 'a'] ++;        else wen++;    }    int cnt=0;    int num=0;bool ok=1;    for(i=0;i<26;i++){        if(ns[i] > np[i]){            ok=0;            break;        }        if(ns[i]<np[i] && np[i]>0)num+=np[i]-ns[i];    }    if(ok && wen == num)cnt++;    for(i=lp;i<ls;i++){        num = 0;ok=1;        if(s[i-lp] == '?')wen--;        else ns[s[i-lp]-'a']--;        if(s[i]!='?')        ns[s[i]-'a']++;        else wen++;        for(j=0;j<26;j++){        if(ns[j] > np[j]){            ok=0;            break;        }        if(ns[j]<np[j] && np[j]>0)num+=np[j]-ns[j];        }    if(ok && wen == num)cnt++;    }    cout<<cnt<<endl;    return 0;}

D 求出最短路後亂搞

#include<iostream>#include<string.h>#include<cstdio>#include <vector>#include <queue>using namespace std;#define N 100004const int INF = (1<<30);int n,m;struct edge{    int u,v,w;    int next;}e[N*10];int head[N];int dis[N];bool vis[N];          //記錄頂點是否在隊列中,SPFA演算法可以入隊列多次int cnt[N];             //記錄頂點入隊列次數int ans;int l;int ecnt;void init(){    ecnt = 0;    memset(head,-1,sizeof(head));}void add(int u,int v,int w){    e[ecnt].u = u;    e[ecnt].v = v;    e[ecnt].w = w;    e[ecnt].next = head[u];    head[u] = ecnt++;}bool SPFA(int s){    queue<int>  qq;    int i;    for(i=1;i<=n;++i){        dis[i] = INF;        //將除源點以外的其餘點的距離設定為無窮大        vis[i] = 0;        cnt[i] = 0;    }    dis[s]=0;              //源點的距離為0    vis[s] = 1;    cnt[s]++;            //源點的入隊列次數增加    qq.push(s);    int u,v;    while(!qq.empty()){        u = qq.front();        qq.pop();        vis[u] = 0;        for(i=head[u];i!=-1;i = e[i].next){            v = e[i].v;            int cost = e[i].w;            if(dis[v] > cost+dis[u]){                dis[v] = cost+dis[u];                if(!vis[v]){                    vis[v] = 1;                    qq.push(v);                    cnt[v]++;                    if(cnt[v] >= n)return false;                }            }        }    }    return true;}int main(){    //freopen("input.txt","r",stdin);    int s;    scanf("%d%d%d",&n,&m,&s);    int i;    int a,b,w;    init();    for(i=0;i<m;++i){         //雙向        cin>>a>>b>>w;        add(a,b,w);        add(b,a,w);     }     cin>>l;     ans = 0;     SPFA(s);     for(i=1;i<=n;i++){         if(dis[i] == l)ans++;     }     for(i=0;i<ecnt;i+=2){         int u = e[i].u;         int v = e[i].v;         int val = e[i].w;         int d1 = l - dis[u];         int d2 = l - dis[v];         if(d1 >0 && d2 > 0){             if(d1 + d2 == val)ans++;             if(d1 + d2 < val)ans+=2;         } else {             if(d1 > 0 && d1 < val)ans++;             if(d2 > 0 && d2 < val)ans++;         }     }     cout<<ans<<endl;     return 0;}

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.