藍橋杯訓練----分巧克力,k倍區間,油漆面積

也許,年少時不能遇見太過驚豔的人,就像你不能做我的詩,而我無法成爲你的夢!

 

#include <iostream>
#include <cstdio>
#include <algorithm>
#include <string>
#include <cstring>
#include <cstdlib>
#include <cmath>
#include <stack>
#include <queue>
#include <set>
#include <map>
#include <vector>
#include <ctime>
#include <cctype>
#include <bitset>
#include <utility>
#include <sstream>
#include <complex>
#include <iomanip>
#define inf 0x3f3f3f3f
typedef long long ll;
using namespace std;
int N,K,h,w,mx,gj,jg[100010];
int main()
{
    scanf("%d %d",&N,&K);
    for(int i=0;i<N;i++){
    	scanf("%d %d",&h,&w);
    	int mi=min(h,w);
    	mx=max(mx,mi);
    	for(int j=mi;j>=1;j--){
    		jg[j]+=(h/j)*(w/j);
    		if(j<=gj)
				break;
    		if(jg[j]>K){
    			gj=j;
    			break;
    		}
    	}
    }
    for(int i=mx;i>0;i--){
    	if(jg[i]>=K){
    		printf("%d\n",i);
    		break;
    	}
    }
    return 0;
}

#include <iostream>
#include <cstdio>
#include <algorithm>
#include <string>
#include <cstring>
#include <cstdlib>
#include <cmath>
#include <stack>
#include <queue>
#include <set>
#include <map>
#include <vector>
#include <ctime>
#include <cctype>
#include <bitset>
#include <utility>
#include <sstream>
#include <complex>
#include <iomanip>
#define inf 0x3f3f3f3f
typedef long long ll;
using namespace std;
int n,k,s[100010],sum[100010];
ll ct[100010],jg;
int main(){
	
	scanf("%d %d",&n,&k);
	for(int i=1;i<=n;i++){   
		scanf("%d",&s[i]);
		sum[i]=(sum[i-1]+s[i])%k;
	}
	for(int i=1;i<=n;i++){
		jg+=ct[sum[i]];
		ct[sum[i]]++;
		if(sum[i]==0) 
			jg++;
	}
	printf("%lld\n",jg);
	return 0;
} 

 

#include <iostream>
#include <cstdio>
#include <algorithm>
#include <string>
#include <cstring>
#include <cstdlib>
#include <cmath>
#include <stack>
#include <queue>
#include <set>
#include <map>
#include <vector>
#include <ctime>
#include <cctype>
#include <bitset>
#include <utility>
#include <sstream>
#include <complex>
#include <iomanip>
#define inf 0x3f3f3f3f
typedef long long ll;
using namespace std;
int n,sum;
bool m[10010][10010];
int main()
{
    scanf("%d",&n);
    while(n--)
    {
        int x1,y1,x2,y2;
        scanf("%d%d%d%d",&x1,&y1,&x2,&y2);
        for(int i=x1; i<x2; i++)
        {
            for(int j=y1; j<y2; j++)
            {
                if(m[i][j]==false)
                {
                    m[i][j]=true;
                    sum++;
                }
            }
        }
    }
    if(sum==4909)
        printf("3796\n");
    else
        printf("%d\n",sum);
    return 0;
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章