zoukankan      html  css  js  c++  java
  • 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
    ",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
    ",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......

  • 相关阅读:
    css中vertical-align(垂直对齐)的使用
    CSS教程:div垂直居中的N种方法[转]
    前后端分离开发部署模式
    <a>标签的href和onclick属性
    css 字体样式
    谷歌开发者工具界面介绍
    cps和dsp渠道手法的研究
    网络资源汇总
    DataWorks(数据工场)
    vue入门学习笔记
  • 原文地址:https://www.cnblogs.com/cjjsb/p/9073891.html
Copyright © 2011-2022 走看看