国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 開發(fā)設(shè)計(jì) > 正文

codeforces #394

2019-11-10 20:42:56
字體:
供稿:網(wǎng)友

A

題意:

上臺階奇數(shù)和偶數(shù)分別多少可以實(shí)現(xiàn)是從a到b連著上的(a>=1)

tip:

0,0不可以,至少上了一節(jié)

#include <iostream>#include <cstdio>#include <cstring>#include <algorithm>using namespace std;void init(){ int a,b; scanf("%d%d",&a,&b); if(a == 0&& b == 0) B

題意:

一個圈圈上有好多點(diǎn),找一個點(diǎn)逆時(shí)針走一圈和所有上面點(diǎn)的距離給你。。。再來一個人也是這樣,問他倆是不是在同一個圈圈上

tip:

最后一個點(diǎn)和第一個點(diǎn)的距離,是周長-所有其他的點(diǎn)直接距離和。然后遍歷找有沒有完全重合的方式

#include <iostream>#include <cstdio>#include <cstring>#include <algorithm>using namespace std;int a[110],c[110];void init(){ int b,n,l,bu; bu = 0; scanf("%d%d",&n,&l); for(int i = 0 ; i < n ; i++){ scanf("%d",&b); a[i] = b-bu; bu = b; } bu = 0; a[0] += l-b; for(int i = 0; i < n ; i++){ scanf("%d",&b); c[i] =b- bu; bu = b; } c[0] += l-b; for(int i = 0; i < n ; i++){ int j = 1,k = i; for(j = 0; j < n ; j++){ if(a[k] != c[j]) break; else { k = (k+1)%n; } } if(j == n){ printf("YES/n"); return; } } printf("NO/n");}int main(){ init(); return 0;}

C

題意:

一個密碼必須有數(shù)字,字母,符號。。給你幾個字符串,可以左移或者右移這個字符串,問最后最少多少步能讓所有字符串的首字母成為合法密碼

tip:

找到每個數(shù)字。字母。符號需要移動的最少次少和第三少,這樣就算都是一個字符串,也可以取到不同的字符串的最少。維護(hù)三小值

#include <iostream>#include <cstdio>#include <cstring>#include <algorithm>using namespace std;typedef pair<int,int> pii;int n,m,pos;char s[60][60];int szz[60],zmm[60],fhh[60],szmin,zmmin,fhmin;pii sz[4],zm[4],fh[4];void init(){ scanf("%d%d",&n,&m); for(int i = 0 ; i <= n ; i++) szz[i] = zmm[i] = fhh[i] = (1<<30); for(int i = 1; i <= 3; i++) sz[i].second = zm[i].second = fh[i].second = (1<<30); for(int i = 1 ;i <= n; i++){ scanf("%s",s[i]); for(int j = 0 ; j < m ; j++){ pos = min(j,m-j); if(s[i][j] >= '0'&&s[i][j] <= '9') szz[i] = min(szz[i],pos); else if(s[i][j] >= 'a' && s[i][j] <= 'z') zmm[i] = min(zmm[i],pos); else if(s[i][j] == '#'||s[i][j] == '*'||s[i][j] == '&') fhh[i]= min(fhh[i],pos); } // printf("sz %d second = %d/n",szz[i],sz[3].second); if(szz[i] < sz[3].second) sz[3].first=i,sz[3].second=szz[i]; if(szz[i] < sz[2].second) swap(sz[2],sz[3]); if(szz[i] < sz[1].second) swap(sz[1],sz[2]); if(zmm[i] < zm[3].second) zm[3].first=i,zm[3].second=zmm[i]; if(zmm[i] < zm[2].second) swap(zm[2],zm[3]); if(zmm[i] < zm[1].second) swap(zm[1],zm[2]); if(fhh[i] < fh[3].second) fh[3].first=i,fh[3].second=fhh[i]; if(fhh[i] < fh[2].second) swap(fh[2],fh[3]); if(fhh[i] < fh[1].second) swap(fh[1],fh[2]); } int ans = (1<<30); for(int i = 1; i <= 3; i++) for(int j = 1; j <= 3; j++) for(int k = 1; k <= 3; k++) if(sz[i].first!=zm[j].first && zm[j].first != fh[k].first &&sz[i].first != fh[k].first && sz[i].second!=(1<<30) &&zm[j].second!=(1<<30)&&fh[k].second!=(1<<30)) ans = min(ans,sz[i].second+zm[j].second+fh[k].second); printf("%d/n",ans);}int main(){ init(); return 0;}

D題:

題意:

n是4個串長度,三個串滿足關(guān)系: ci?=?bi?-?ai,p串是c串中每個數(shù)字在本串中是第幾小的。。。現(xiàn)在給你p串和a串,問b串是否滿足每個數(shù)字在l r 之間,且能讓產(chǎn)生c串有p串的順序

tip:

l- min(a[i])+a[i] <= b[i] <= r- max(a[i])+a[i] 滿足這個左右關(guān)系就是可以的,每個bi都直接給左邊或者右邊

#include <iostream>#include <cstdio>#include <cstring>#include <algorithm>using namespace std;int n,LL,RR,l,r;const int maxn = 1e5+10;int a[maxn],c[maxn];void init(){ int minn = (1<<30); int maxx = -(1<<30); scanf("%d%d%d",&n,&l,&r); for(int i = 1; i <= n ; i++) scanf("%d",&a[i]); for(int i = 1; i <= n ; i++){ int s; scanf("%d",&s); c[i] = n-s; a[i] -= c[i]; minn = min(minn,a[i]); maxx = max(maxx,a[i]); } if(l-minn <= r-maxx){ for(int i = 1; i <= n ; i++) printf("%d ",l-minn+a[i]); } else printf("-1/n");}int main(){ init(); return 0;}
發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 夏河县| 桃园县| 类乌齐县| 盐山县| 乌海市| 常山县| 惠来县| 子长县| 大关县| 微博| 游戏| 外汇| 乐昌市| 黑龙江省| 定兴县| 长顺县| 扶绥县| 延庆县| 嵊州市| 张家川| 周口市| 大同市| 汤阴县| 定南县| 黄平县| 怀远县| 崇仁县| 大渡口区| 隆林| 呼伦贝尔市| 滦平县| 翼城县| 溧阳市| 灵石县| 麦盖提县| 龙游县| 沙湾县| 古蔺县| 镇江市| 凤山市| 卢氏县|