日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

      歡迎訪問 生活随笔!

      生活随笔

      當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

      编程问答

      10.27 afternoon similated match

      發(fā)布時間:2024/9/5 编程问答 49 豆豆
      生活随笔 收集整理的這篇文章主要介紹了 10.27 afternoon similated match 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

      ?

      選舉


      ?

      ?

      題目描述

      C國的總統(tǒng)選舉委員會最近遇到了一些麻煩。

      他們在統(tǒng)計各省對H先生的支持率(百分比)時,把支持率四舍五入到了整數(shù)。等他們公布結(jié)果后,該國媒體發(fā)現(xiàn)這些省份的支持率之和不等于100(百分比)!在媒體黑幕聲的質(zhì)疑下,他們不得不找你尋求幫助。

      你將得到各省四舍五入后的支持率,請計算這些省份的支持率在四舍五入前的和是否可能等于100?支持率是以百分比的形式統(tǒng)計的。

      請注意,各省的支持率可以是一個包含任意多位的有限小數(shù)。一個小數(shù)在四舍五入到整數(shù)時,若小數(shù)點后第一位小于5則舍,大于等于5則入。

      例如:

      26、17、58是一種可能的支持率,因為它們可能是25.8、16.5、57.7四舍五入后得到的,而25.8+16.5+57.7=100。

      49、49是一種不可能的支持率,因為當(dāng)9的個數(shù)有限時,無論有多少個9,均有49.499…99+49.499…99<100。

      輸入格式

      輸入包含多組數(shù)據(jù),第一行是一個整數(shù)T,表示數(shù)據(jù)組數(shù)。

      接下來是T組數(shù)據(jù),每組數(shù)據(jù)的第一行是一個整數(shù)N,表示參與選舉的省份個數(shù)。第二行是N個整數(shù),表示各省四舍五入后的支持率。

      輸出格式

      對于每組數(shù)據(jù),若是一種可能的支持率,輸出Yes,否則輸出No。

      樣例輸入

      2

      2

      49 49

      3????

      26 17 58

      樣例輸出

      No

      Yes

      數(shù)據(jù)范圍與約定

      對于30%的數(shù)據(jù),1<=n<=3;

      對于50%的數(shù)據(jù),1<=n<=5;

      對于80%的數(shù)據(jù),1<=四舍五入后各省的支持率<=99;

      對于100%的數(shù)據(jù),1<=n<=10000,輸入數(shù)據(jù)中的所有整數(shù)均在有符號16位整數(shù)范圍內(nèi)。

      #include<cstdio> using namespace std; #define O(a) freopen(a".in","r",stdin);freopen(a".out","w",stdout); #define ct register int #define f(c) for(ct i=1;i<=c;i++) typedef long long ll; int read(){ct f=1,x=0;char c=getchar();for(;c<'0'||c>'9';c=getchar())if(c=='-')f=-1;for(;'0'<=c&&c<='9';c=getchar())x=(x<<1)+(x<<3)+(c^48);return x*f;} int main(){O("election");double total;bool out=0;int w;int t=read();while(t--){int n=read(),x;w=n;f(n){x=read(),total+=x,x==0?w--:w=w;if(x<0)out=1;}if(out){printf("No\n");continue;}if(total>100)total-w*0.5<=100?printf("Yes\n"):printf("No\n");elseif(total<100)total+n*0.49999999999>=100?printf("Yes\n"):printf("No\n");else printf("Yes\n");total=0;}return 0; }

      入門題沒什么好講了吧。(雖然我之前的程序因為沉迷三目WA了一個點)

      ?

      異象石


      ?

      題目描述

      Adera是Microsoft應(yīng)用商店中的一款解謎游戲。

      異象石是進(jìn)入Adera中異時空的引導(dǎo)物,在Adera的異時空中有一張地圖。這張地圖上有N個點,有N-1條雙向邊把它們連通起來。起初地圖上沒有任何異象石,在接下來的M個時刻中,每個時刻會發(fā)生以下三種類型的事件之一:

    1. 地圖的某個點上出現(xiàn)了異象石(已經(jīng)出現(xiàn)的不會再次出現(xiàn));
    2. 地圖某個點上的異象石被摧毀(不會摧毀沒有異象石的點);
    3. 向玩家詢問使所有異象石所在的點連通的邊集的總長度最小是多少。
    4. 請你作為玩家回答這些問題。

      輸入格式

      第一行有一個整數(shù)N,表示點的個數(shù)。

      接下來N-1行每行三個整數(shù)x,y,z,表示點x和y之間有一條長度為z的雙向邊。

      第N+1行有一個正整數(shù)M。

      接下來M行每行是一個事件,事件是以下三種格式之一:

      + x??? 表示點x上出現(xiàn)了異象石

      - x表示點x上的異象石被摧毀

      ?表示詢問使當(dāng)前所有異象石所在的點連通所需的邊集的總長度最小是多少。

      輸出格式

      對于每個 ?事件,輸出一個整數(shù)表示答案。

      樣例輸入

      6

      1 2 1

      1 3 5

      4 1 7

      4 5 3

      6 4 2

      10

      + 3

      + 1

      ?

      + 6

      ?

      + 5

      ?

      - 6

      - 3

      ?

      樣例輸出

      5

      14

      17

      10

      數(shù)據(jù)范圍與約定

      對于30%的數(shù)據(jù),1?≤?n, m?≤?1000。

      對于另20%的數(shù)據(jù),地圖是一條鏈,或者一朵菊花。

      對于100%的數(shù)據(jù),1?≤?n, m?≤?10^5, 1?≤?x, y?≤?n, x?≠?y, 1?≤?z?≤?10^9。

      ?

      #include<cstdio> #include<set> #define MN 100000 #define MD 17 using namespace std; #define O(a) freopen(a".in","r",stdin);freopen(a".out","w",stdout); #define ct register int #define f(i,c) for(ct i=1;i<=c;i++) #define I set<int>::iterator #define ll long long int read(){ct f=1,x=0;char c=getchar();for(;c<'0'||c>'9';c=getchar())if(c=='-')f=-1;for(;'0'<=c&&c<='9';c=getchar())x=(x<<1)+(x<<3)+(c^48);return x*f;} char st[5];set<int> s; int n,m,head[MN+5],cnt=0,fa[MD+1][MN+5],dfn[MN+5],p[MN+5],D[MN+5],dn=0; long long ans=0,dep[MN+5]; struct edge{int to,next,w;}e[MN*2+5]; inline void ins(int f,int t,int w){e[++cnt]=(edge){t,head[f],w};head[f]=cnt;e[++cnt]=(edge){f,head[t],w};head[t]=cnt; } void Pre(int x,int f){dfn[x]=++dn;p[dn]=x;fa[0][x]=f;for(int i=head[x];i;i=e[i].next)if(e[i].to!=f) D[e[i].to]=D[x]+1,dep[e[i].to]=dep[x]+e[i].w,Pre(e[i].to,x);} int lca(int x,int y){if(D[x]<D[y])swap(x,y);for(int k=D[x]-D[y],j=0;k;k>>=1,++j)if(k&1)x=fa[j][x];if(x==y)return x;for(int i=MD;~i;--i)if(fa[i][x]!=fa[i][y])x=fa[i][x],y=fa[i][y];return fa[0][x];} long long dis(int x,int y){x=p[x];y=p[y];return dep[x]+dep[y]-2*dep[lca(x,y)];} int main(){O("stone");n=read();for(int i=1,j,k;i<n;++i) j=read(),k=read(),ins(j,k,read());Pre(1,0);f(i,MD)f(j,n)fa[i][j]=fa[i-1][fa[i-1][j]];m=read();for(int i=1,j=0;i<=m;++i){scanf("%s",st+1);if(st[1]=='?')printf("%lld\n",ans>>1);else if(st[1]=='+'){int x=dfn[read()];s.insert(x);if(++j==1) {ans=0;continue;}I it2,it=s.lower_bound(x);int pre,aft;it==s.begin()?pre=*--(it2=s.end()):pre=*--(it2=it);++(it2=it)==s.end()?aft=*s.begin():aft=*it2;ans+=dis(pre,x)+dis(x,aft)-dis(pre,aft);}else if(st[1]=='-'){int x=dfn[read()];if(--j<=1){ans=0;s.erase(s.find(x));continue;}I it=s.lower_bound(x),it2;int pre,aft;if(it==s.begin()) pre=*--(it2=s.end()); else pre=*--(it2=it);if(++(it2=it)==s.end()) aft=*s.begin();else aft=*it2;ans-=dis(pre,x)+dis(x,aft)-dis(pre,aft);s.erase(it);}}return 0;}

      ?

      序列變換


      ?

      ?

      題目描述

      給定一個長度為N的數(shù)列Ai。

      你可以對數(shù)列進(jìn)行若干次操作,每次操作可以從數(shù)列中任選一個數(shù),把它移動到數(shù)列的開頭或者結(jié)尾。

      求最少經(jīng)過多少次操作,可以把數(shù)列變成單調(diào)不減的。“單調(diào)不減”意味著數(shù)列中的任意一個數(shù)都不大于排在它后邊的數(shù)。

      輸入格式

      第一行是一個正整數(shù)N。

      第二行是N個正整數(shù)Ai。

      輸出格式

      輸出一個整數(shù),表示最少需要的操作次數(shù)。

      樣例輸入

      5

      6 3 7 8 6

      樣例輸出

      2

      數(shù)據(jù)范圍與約定

      對于30%的數(shù)據(jù),滿足1≤n≤10。

      對于60% 的數(shù)據(jù),滿足1≤n≤1000。

      對于100% 的數(shù)據(jù),滿足1≤n≤1000000,1≤Ai≤1000000。

      ?

      #include<cstdio> #include<algorithm> #include<vector> #define O(a) freopen(a".in","r",stdin);freopen(a".out","w",stdout); #define f(a,b,c,d) for(int a=b;a-d!=c;a+=d) using namespace std; int n,m,ans,l,r; int a[1000001],q[1000001]; vector<int> b[1000001]; int main(){O("change");scanf("%d",&n);f(i,1,n,1)scanf("%d",&a[i]),b[a[i]].push_back(i),m=max(m,a[i]);l=1;r=0;f(i,1,m,1){reverse(b[i].begin(), b[i].end());f(j,0,b[i].size()-1,1){int k=b[i][j];while(l<=r&&q[r]>k){while(l<r&&a[q[l]]<a[q[r]]) l++;r--;}ans=max(ans,r-l+2+j);}for(int j=b[i].size()-1;j>=0;j--)q[++r]=b[i][j];}printf("%d",n-ans);return 0;}

      ?

      轉(zhuǎn)載于:https://www.cnblogs.com/muzu/p/7744363.html

      總結(jié)

      以上是生活随笔為你收集整理的10.27 afternoon similated match的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

      如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。