2018 计蒜之道 初赛 第四场
生活随笔
收集整理的這篇文章主要介紹了
2018 计蒜之道 初赛 第四场
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
這次憑借這超強的手速終于打到了Rank76
由于這是手速場,所以題目都偏簡單,但慣后面兩題還是很不可做的
A. 貝殼找房均價計算
這道題題意很清楚了吧,但是有一個坑點:|Y|表示的是字符串Y的長度,而不是Y的絕對值
然后模擬即可,不得不說道題5minA了還是挺快的
CODE
#include<cstdio> #include<cstring> using namespace std; typedef long long LL; char s[1005]; LL x; int t,y; int main() {register int i; scanf("%d",&t);while (t--){scanf("%lld.%s",&x,s+1);int len=strlen(s+1);for (i=len;i>1;--i)if (s[i]>='5') ++s[i-1];if (s[1]>='5') ++x;printf("%lld\n",x);}return 0; }B. 貝殼找房搜房(簡單)
這個的話由于數據范圍小,我們n!枚舉全排列然后暴力判斷即可
但是這里有一個巨大無比的坑點:集合無序
這么說對于這組數據:
2 1
2 2 1
的輸出應該是1 2而不是2 1
然后我們只要在以上基礎上sort一下即可
CODE
#include<cstdio> #include<algorithm> using namespace std; const int N=10; int num[N],a[30][30],n,m,t[30]; inline char tc(void) {static char fl[100000],*A=fl,*B=fl;return A==B&&(B=(A=fl)+fread(fl,1,100000,stdin),A==B)?EOF:*A++; } inline void read(int &x) {x=0; char ch=tc();while (ch<'0'||ch>'9') ch=tc();while (ch>='0'&&ch<='9') x=x*10+ch-'0',ch=tc(); } inline bool check(int l,int r,int id) {register int i; int cnt=0;for (i=l;i<=r;++i)t[++cnt]=num[i];sort(t+1,t+cnt+1);for (i=1;i<=cnt;++i)if (a[id][i]!=t[i]) return 0;return 1; } inline void print(void) {for (register int i=1;i<n;++i)printf("%d ",num[i]); printf("%d\n",num[n]); } int main() {//freopen("CODE.in","r",stdin); freopen("CODE.out","w",stdout);register int i,j,k;read(n); read(m);for (i=1;i<=m;++i)for (read(a[i][0]),j=1;j<=a[i][0];++j)read(a[i][j]);for (i=1;i<=m;++i)sort(a[i]+1,a[i]+a[i][0]+1);for (i=1;i<=n;++i)num[i]=i;do{bool sign=1;for (i=1;i<=m;++i){bool flag=0;for (j=1;j<=n-a[i][0]+1;++j)if (check(j,j+a[i][0]-1,i)) { flag=1; break; }if (!flag) { sign=0; break; }}if (sign) { print(); return 0; }}while (next_permutation(num+1,num+n+1));puts("-1");return 0; }C. 貝殼找房搜房(中等)&&D. 貝殼找房搜房(困難)
這兩題也是很不可做的,SOL寫得比較簡略,可以O(n^2)貪心判斷
但是我不會啊,我真的是太弱了
跪求大佬題解ing......
轉載于:https://www.cnblogs.com/cjjsb/p/9073891.html
總結
以上是生活随笔為你收集整理的2018 计蒜之道 初赛 第四场的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: LOJ P1155 双栈排序 二分图染色
- 下一篇: 记录自己最近犯得一些傻事