• 个人简介

    a×ba\times b

    (深搜)

    #include<bits/stdc++.h>
    using namespace std;
    long long f[10],a[10],b[10],n;
    void dfs(int x)
    {
    	if(x>3)
    	{
    		for(int i=1;i<=3;i++) cout<<b[i];
    		cout<<" ";
    		return ;
    	}
    	for(int i=1;i<=3;i++)
    	{
    		if(f[i]==0)
    		{
    			b[x]=a[i];
    			f[i]=1;
    			dfs(x+1);
    			f[i]=0;
    		}
    	}
    }
    int main()
    {
    	for(int i=1;i<=3;i++) cin>>a[i];
    	sort(a+1,a+4);
    	dfs(1);
    }
    
    #include<bits/stdc++.h>
    using namespace std;
    int dx[5]={0,2,1,-1,-2};
    int dy[5]={0,1,2,2,1};
    void dfs(int x,int y)
    {
    	if(x==m&&y==n)
    	{
    		ans++;
    		return ;
    	}
    	for(int i=1;i<=4;i++)
    	{
    		int tx=x+dx[i];
    		int ty=y+dy[i];
    		
    		if(f[tx][ty]==1) continue;
    		if(tx<0||tx>m||ty>n) continue;
    		f[tx][ty]=1;
    		dfs(tx,ty);
    		f[tx][ty]=0;
    		//
    		if(tx>=0&&tx<=m&&ty>=0&&ty<=n&&f[tx][ty]==0)
    		{
    			f[tx][ty]=1;
    			dfs(tx,ty);
    			f[tx][ty]=0;
    		}
    	}
    }
    int main()
    {
    	cin>>m>>n;
    	f[0][0]=1;
    	dfs(0,0);
    	cout<<ans;
    }
    

    01

    #include<bits/stdc++.h>
    using namespace std;
    long long n,V,v[1100],w[1100],f[1100][1100];
    int main()
    {
    	cin>>n>>V;
    	for(int i=1;i<=n;i++) cin>>v[i]>>w[i];
    	for(int i=1;i<=n;i++)
    	{
    		for(int j=1;j<=V;j++)
    		{
    			if(j>=v[i]) f[i][j]=max(f[i-1][j-v[i]]+w[i],f[i-1][j]);
    			else f[i][j]=f[i-1][j];
    		}
    	}
    	cout<<f[n][V];
    }
    
    #include<bits/stdc++.h>
    using namespace std;
    int dx[5]={0,-1,1,0,0};
    int dy[5]={0,0,0,-1,1};
    int r,c,f[200][200],a[200][200],maxn,d[200][200];
    int dfs(int x,int y) {
    	if(d[x][y]) return d[x][y];
    	int ans=0;
    	for(int i=1;i<=4;i++) {
    		int tx=x+dx[i];
    		int ty=y+dy[i];
    		if(f[tx][ty]==1) continue;
    		if(tx<1||ty<1||tx>r||ty>c) continue;
    		if(a[x][y]<=a[tx][ty]) continue;
    		f[tx][ty]=1;
    		ans=max(ans,dfs(tx,ty));
    		f[tx][ty]=0;
    	}
    	return d[x][y]=ans+1;
    }
    int main() {
    	cin>>r>>c;
    	for(int i=1;i<=r;i++) 
    	  for(int j=1;j<=c;j++) cin>>a[i][j];
    	for(int i=1;i<=r;i++)
    	  for(int j=1;j<=c;j++) {
    	  	f[i][j]=1;
    		maxn=max(maxn,dfs(i,j));
    		f[i][j]=0;
    	}
    	cout<<maxn;
    }
    
    #include <bits/stdc++.h>
    using namespace std;
    int n, f[1000010], x, y, q[1000010];
    int main() {
    	freopen("pcount.in", "r", stdin);
    	freopen("pcount.out", "w", stdout);
    	for (int i = 2; i <= 1000000; ++ i) f[i] = 1;
    	for (int i = 2; i * i <= 1000000; ++ i) if (f[i] == 1) {
    			for (int j = i * i; j <= 1000000; j += i) f[j] = 0;
    		}
    	for (int i = 1; i <= 1000000; ++ i) q[i] = q[i - 1] + f[i];
    	cin >> n;
    	for (int i = 1; i <= n; ++ i) {
    		cin >> x >> y;
    		cout << q[y] - q[x - 1] << '\n';
    	}
    	return 0;
    }
    
  • 通过的题目

  • 最近活动

    This person is lazy and didn't join any contests or homework.
  • 最近编写的题解

    This person is lazy and didn't write any solutions.