zoukankan      html  css  js  c++  java
  • %你赛2020.2

    T1 P3392

    比较良心的一道(dp),与处理前缀,中缀,后缀和,再跑一遍即可,复杂度大概(O(nm+n^2)),数据小了点啊,才(50)

    (Code:)

    #include<iostream>
    #include<cstdio>
    #include<cmath>
    using namespace std;
    int n,m;
    char e[55][55];
    int r[55],w[55],b[55];
    int sum1[55],sum2[55][55],sum3[55];
    int minn=2147483647;
    int main()
    {
    	scanf("%d%d",&n,&m);
    	for(int i=1;i<=n;i++)
    	{
    		for(int j=1;j<=m;j++)
    		{
    			//scanf("%c",&e[i][j]);
    			cin>>e[i][j];
    			if(e[i][j]=='W') w[i]++;
    			else if(e[i][j]=='R') r[i]++;
    			else b[i]++;
    		}
    	}
    	for(int i=1;i<=n;i++)
    	{
    		w[i]=m-w[i];
    		r[i]=m-r[i];
    		b[i]=m-b[i];
    	}
    	for(int i=1;i<=n-2;i++) sum1[i]+=sum1[i-1]+w[i];
    	for(int i=2;i<=n-1;i++)
    	{
    		for(int j=i;j<=n-1;j++)
    		{
    			sum2[i][j]=sum2[i][j-1]+b[j];
    		}
    	}
    	for(int i=n;i>=2;i--) sum3[i]=sum3[i+1]+r[i];
    	for(int i=1;i<=n-2;i++)
    	{
    		for(int j=i+1;j<=n-1;j++)
    		{
    			minn=min(minn,sum1[i]+sum2[i+1][j]+sum3[j+1]);
    		}
    	}
    	printf("%d
    ",minn);
    	return 0;
    }
    

    吐槽一下:凭什么(scanf)读入就会(WA)呢?

    T2 P5425

    一眼数学题,而我确把重点放在边的关系上。
    根据我严密的推理,得到应选第(dfrac{(N-K)^2+N-K}{2}+1)小条边上,想到看到一个(O(N))找第(k)小数的题没看,沦为(O(NlogN)),此题复杂度为(O(N^2logN^2)=O(N^2logN)),(T)(44)分,不过怎么还(WA)了?
    其实至今也不太懂,唯一不严谨的地方正解也没有考虑,算了,安利上题解吧:
    没想到的部分
    我的一部分正确思路
    对,这题的关键在于化简取模式。

    (Code(13pts):)

    #include<iostream>
    #include<cstdio>
    #include<algorithm>
    using namespace std;
    typedef long long ll;
    int n,k;
    const ll xx=2019201913,mod=2019201997;
    long long dis[30000000],cnt=0;
    inline int read()
    {
    	int x=0,w=1;
    	char c=getchar();
    	while(c<'0'||c>'9'){c=getchar();}
    	while(c>='0'&&c<='9')
    	{
    		x=(x<<1)+(x<<3)+c-'0';
    		c=getchar();
    	}
    	return x*w;
    } 
    inline void print(int x)
    {
    	if(x>10) print(x/10);
    	putchar(x%10^'0');
    }
    int main()
    {
    	n=read();
    	k=read();
    	for(int i=1;i<n;i++)
    	{
    		for(int j=i+1;j<=n;j++)
    		{
    			long long a=(i+j)*xx%mod;
    			dis[++cnt]=(a+36*j)%mod;
    		}
    	}
    	sort(dis+1,dis+cnt+1);
    	int t=n-k;
    	int k=(t*t+t)/2+1;
    	printf("%lld
    ",dis[k]);
    	return 0;
    }
    

    (Code(AC):)

    #include <bits/stdc++.h>
    using namespace std;
    int n,k;
    int main () {
        scanf("%d%d",&n,&k);
        printf("%d
    ",-12*(7*(k-1)+4*n)+2019201997);
        return 0;
    }
    

    差距啊......

    T3 P2829

    T2搞得我很没心情,打了个输出(-1)就滚粗了,就不给骗分代码了。

    题外话

    看了(1h)花姐博客,好感人的,要哭了呢。
    人家(OI)和作文都比你(NB),我太难了。

    总结:这次神仙结论题让我成功得到(100+13+10=123 pts)十分爆炸,说明我还是切不了绿题啊,离(CSP)越来越近,似乎离成功越来越远,心情并不好(特别是读了哪些文章),算了,下一次看吧。

  • 相关阅读:
    hbase-15-如何查看HFile
    Hbase-14-MemStore Flush的触发时机
    Hbase-13-MemStore
    【c++】C++中erase的用法
    Redis五种数据结构(转载)
    redis的三种集群方式 (转载)
    hbase和hive的差别是什么,各自适用在什么场景中?(转载)
    vue 数据已经更新了但是页面未更新
    uni-app配置跨域
    覆盖 web-view (uni-app)
  • 原文地址:https://www.cnblogs.com/tlx-blog/p/12251478.html
Copyright © 2011-2022 走看看