지산 의 길 첫 번 째 문제 풀이

14080 단어 알고리즘
줄 을 서다
  10     
      10  

        1  
       512MB
  A        n         ,         1∼n,       m    ,    i            ai,            ai         ,              ?

입력 형식
                  n,m

    m          ,    i     ai

출력 형식

데이터 규모 와 약정
   30%1≤n≤100,1≤m≤10
   60%1≤n≤1000,1≤m≤10
   100%1≤n≤100000,1≤m≤100,1≤ai≤n

샘플 입력
10 3
3 4 5

샘플 출력
3

코드:
#include
#include
#include
#include
using namespace std;
typedef long long ll;
int main() 
{
	int n,m,a[100005],ans=0,x;
	cin>>n>>m;
	memset(a,0,sizeof(a));
	for(int i=0;i<m;i++)
	{
		cin>>x;
		for(int i=x;i<=n;i+=x)//       
		{
			a[i]=1;
		}
	}
	for(int i=1;i<=n;i++)
	{
		if(a[i]==0)ans++;
	}
	cout<<ans<<endl;
  return 0;
}


스위치
  10     
      10  

        1  
       512MB
  B     n    ,     i         ai,   ai=1     i       ,ai=0    i       。     B        ,          ,            x,    x                 (   ,   ),    B                        。

입력 형식
          n

          n   010    1

출력 형식

데이터 규모 와 약정
   30%1≤n≤20
   60%1≤n≤2000
   100%1≤n≤200000

샘플 입력
4
1001

샘플 출력
3

코드:
#include
#include
#include
#include
using namespace std;
typedef long long ll;
int main() 
{
	int n,ans=0;
	char s[200005];
	cin>>n;
	cin>>s;
	for(int i=n-1;i>=0;i--)
	{
		if(s[i]=='1'&&!(ans&&1))
		{
			ans++;
		}
		else if(s[i]=='0'&&(ans&&1)){
			ans++;
		}
	}
	cout<<ans<<endl;
  return 0;
}


문자열
  10     
      10  

        1  
       512MB
        S   T,           。          S                   T    。

    ,       ,   aab   3          aab, aba, baa。

입력 형식
          S

          T

출력 형식
            S                   T    

데이터 규모 와 약정
   301≤∣S∣≤5,1≤∣T∣≤200
   60%1≤∣S∣≤2000,1≤∣T∣≤2000
   100%1≤∣S∣≤200000,1≤∣T∣≤200000

샘플 입력
aab
abacabaa

샘플 출력
2

코드:
using namespace std;
string s,t;
set st;
int a[30],b[30];
signed main(){
	ios::sync_with_stdio(false);
	cin.tie(0);cout.tie(0);

	cin>>s>>t;
	int x=s.length();
	int y=t.length();
	if(x>y)//  x    y    0
	{
		cout<<0<=x-1){
			if(i!=x-1) b[t[i-x]-'a']--;
			if(b[t[i]-'a']==a[t[i]-'a']){
				bool ass=0;
				for(char j='a';j<='z';j++){
					if(b[j-'a']!=a[j-'a']){
						ass=1;
						break;
					}
				}
				if(!ass)
					st.insert(t.substr(i-x+1,x));
			}
		}
	}
	cout<

좋은 웹페이지 즐겨찾기