赞
踩
1、
- #include<bits/stdc++.h>
-
- using namespace std;
- const int N=110;
- int a[N][N];
- int n,m;
- int x,y;
- int t;
- string s;
- int main()
- {
- cin>>n>>m;
- cin>>x>>y;
- cin>>t;
-
- while(t--)
- {
- int l,r;
- cin>>l>>r;
- a[l][r]=1;
- }
-
- cin>>s;
-
- for(int i=0;i<s.size();i++)
- {
- switch(s[i])
- {
- case 'U':
- while(1)
- {
- if(a[x-1][y]==1||x==1) break;//只要不超过边界或者碰到障碍物,就一直走
- x--;
- }
- break;
- case 'D':
- while(1)
- {
- if(a[x+1][y]==1||x==n) break;
- x++;
- }
- break;
- case 'L':
- while(1)
- {
- if(a[x][y-1]==1||y==1) break;
- y--;
- }
- break;
- case 'R':
- while(1)
- {
- if(a[x][y+1]==1||y==m) break;
- y++;
- }
- break;
- }
- }
-
- cout<<x<<" "<<y<<endl;
-
- return 0;
- }
2.MC0102房间打扫(难度:白银)
题目描述
小码哥准备去打扫一件房间。这个房间可以简单地看成由n行n列,一共n*n个格子组成,每个格子的初始状态要么是干净的,要么是脏的。小码哥打扫房间的方式非常奇怪:如果他打扫了一个脏格子,这个格子就会变得很干净;反之亦然,如果打扫了一个干净的格子,就会变得很脏。
他想从n列的格子中选择几列进行打扫,希望打扫后完全干净的格子的行数尽可能多。注意:如果他选择了一列进行打扫,则它需要打扫这一列所有的格子;一行是干净,是指这一行所有的格子都是干净的。
小码哥并不是很擅长数学,于是希望你计算一下,如果他使用合理的打扫策略,完全打扫干净的行数最多可以有多少。
输入格式
第一行一个整数n(1<=n<=200),表示房间的大小。
接下来n行n列的01串,1表示干净的,0表示脏的。
输出格式
输出一个整数,表示最大可能的完全干净的行数。
样例输入
5
10001
10001
10010
00101
10001
样例输出
3
- #include<bits/stdc++.h>
- #include<map>
- using namespace std;
- const int N=1000;
- char a[N][N];
- map<string,int> mp;
- int main()
- {
- int n;
- cin>>n;
- for(int i=1;i<=n;i++)
- {
- string b="";
- for(int j=1;j<=n;j++)
- {
- cin>>a[i][j];
- b+=a[i][j];
- }
- mp[b]++;
- }
- int ans=0;
- for(map<string,int>::iterator it=mp.begin();it!=mp.end();it++)
- {
- if(ans<it->second)
- ans=it->second;
- }
- cout<<ans;
- return 0;
- }
3、数字统计
- #include<stdio.h>
- int isShenqi(int n){
- int a=n;
- int b;
- int sum=0;
- while(n>0)
- {
- b=n%10;
- n=n/10;
- sum=sum*10+b;
- }
- if(a%sum==0){
- return 1;
- }
- return 0;
- }
-
- int main()
- {
- int n,num=0;
- scanf("%d",&n);
- for(int i=n;i>0;i--){
- if(isShenqi(i)==1){
- num++;
- }
-
- }
-
- printf("%d",num);
- return 0;
- }
4、项链
- #include<bits/stdc++.h>
- using namespace std;
- const int N=1e6+10;
- int a[N],b[N],vis[N];
- int ans,n;
- int main()
- {
- cin>>n;
- for(int i=1;i<=n;i++)
- cin>>a[i];
- sort(a+1,a+n+1);
- int l=1,r=n;
- int x=0;
- while(l<=r)
- {
- b[++x]=a[r];
- b[++x]=a[l];
- l++;
- r--;
- }
- for(int i=1;i<n;i++)
- {
- int p=b[i]-b[i+1];
- if(p<0) p=-p;
- ans+=p;
- }
- ans+=abs(b[n]-b[1]);
- cout<<ans;
- return 0;
- }
5、
- #include <stdio.h>
-
- int f(int a, int b, int C, int D) {
- if (a == 1) {
- return (C * b + D)%10;
- }
- if (a >= 2) {
- return f(a-1, f(a-1, b, C, D), C, D);
- }
- return 0;
- }
-
- int main() {
- int a, b, C, D;
- scanf("%d %d %d %d", &a, &b, &C, &D);
- int result = f(a, b, C, D);
- printf("%d",result);
-
- return 0;
- }
6、
- #include<iostream>
- using namespace std;
- const int N=1000;
- char a[N][N];
- int main()
- {
- int n;
- cin>>n;
- int t=n*n;
- //先进行初始化
- for(int i=1;i<=n;i++)
- for(int j=1;j<=n;j++)
- a[i][j]='0';
- while(t--)
- {
- for(int i=n;i>=1;i--)
- {
- for(int j=n;j>=1;j--)
- {
- if(j==1)
- {
- if(a[i][j]=='0'&&a[i-1][n]=='1')
- {
- a[i][j]='1';
- a[i-1][n]='0';
- }
- }
- else
- {
- if(a[i][j]=='0'&&a[i][j-1]=='1')
- {
- a[i][j]='1';
- a[i][j-1]='0';
- }
- }
- }
- }
- char x;
- cin>>x;
- if(x=='1') a[1][1]='1';
- int ans=0;
- for(int i=1;i<=n;i++)
- {
- int sum=0;
- for(int j=1;j<=n;j++)
- {
- if(a[i][j]=='1') sum++;
- }
- if(sum!=0) ans++;
- }
- cout<<ans<<" ";
- }
- return 0;
- }
7、
- #include<iostream>
- using namespace std;
- int main()
- {
- int a,b,v1,c,d,v2;
- cin>>a>>b>>v1>>c>>d>>v2;
- int x1=a,y1=b-v1,x2=a+v1,y2=b;
- int x3=c,y3=d-v2,x4=c+v2,y4=d;
- int m1,n1;
- int m2,n2;
- m1=max(min(x1,x2),min(x3,x4));
- n1=max(min(y1,y2),min(y3,y4));
- m2=min(max(x1,x2),max(x3,x4));
- n2=min(max(y1,y2),max(y3,y4));
- if(m2>m1&&n2>n1)
- cout<<v1*v1+v2*v2-(m2-m1)*(n2-n1);//相交
- else
- cout<<v1*v1+v2*v2;//相离
- return 0;
- }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。