AtCoder Beginner Contest 075 总结

题目不难,但是只做出了两道题。今天补题的时候发现全是暴力……= =  

还是太菜了。:(

题目链接:点击打开链接


#include 
#include 
#include 
#include 
#include
#include 
#include 
#include 
#include 
#include 
#include 
using namespace std;
typedef long long ll;
int main(){
    int a,b,c;
    scanf("%d%d%d",&a,&b,&c);
    if(a==b) printf("%d\n",c);
    else if(a==c) printf("%d\n",b);
    else printf("%d\n",a);
	return 0;
}

B
#include 
#include 
#include 
#include 
#include
#include 
#include 
#include 
#include 
#include 
#include 
using namespace std;
typedef long long ll;
const int maxn=55;
char mp[maxn][maxn];
int f[maxn][maxn];
int main(){
    int h,w;
    scanf("%d%d",&h,&w);
    memset(f,0,sizeof(f));
    for(int i=0;i=0){
                    f[i-1][j]++;
                }
                if(j-1>=0){
                    f[i][j-1]++;
                }
                if(i+1=0&&j-1>=0){
                    f[i-1][j-1]++;
                }
                if(i+1=0){
                    f[i+1][j-1]++;
                }
                if(i-1>=0&&j+1

C 看到N的范围最大才50…可以暴力,DFS搜索,每次删除一条边看能不能访问到所有的点,

#include 
#include 
#include 
#include 
#include
#include 
#include 
#include 
#include 
#include 
#include 
using namespace std;
typedef long long ll;


/*

官方题解*/
const int maxn=55;
int n,m;
int a[maxn],b[maxn];
bool graph[maxn][maxn];
bool vis[maxn];

void dfs(int v){
    vis[v]=true;
    for(int v2=0;v2>n>>m;
    for(int i=0;i>a[i]>>b[i];
        a[i]--,b[i]--;
        graph[a[i]][b[i]]=graph[b[i]][a[i]]=true;
    }
    int ans=0;
    for(int i=0;i

 N最大是50 没错还是暴力,n^5的暴力……。不过要注意输出lld 和I64d的区别   传送门

#include 
#include 
#include 
#include 
#include
#include 
#include 
#include 
#include 
#include 
#include 
using namespace std;
typedef long long ll;

vector xray,yray;
int main(){
    int n,k;
    scanf("%d%d",&n,&k);
    vector x(n),y(n);
    for(int i=0;i>x[i]>>y[i];
        xray.push_back(x[i]);
        yray.push_back(y[i]);
    }
    sort(xray.begin(),xray.end());
    sort(yray.begin(),yray.end());

    ll ans=1LL*(xray[n-1]-xray[0])*(yray[n-1]-yray[0]);

    for(int x1=0;x1=lx and x[i]<=rx&&y[i]<=uy&&y[i]>=dy){
                            num++;
                        }
                    }
                    if(num>=k) ans=min(ans,1LL*(rx-lx)*(uy-dy));
                }
            }
        }
    }
    printf("%lld\n",ans);
  //  printf("%I64d\n",ans);
  // cout<



你可能感兴趣的:(AtCoder,大三上学期训练)