中午闲的无聊摸了2011noip提高组day1t1
结果掉坑里
1 #include<cstdio> 2 #include<iostream> 3 #include<algorithm> 4 #include<cmath> 5 using namespace std; 6 int s[200005][200005]; 7 int n; 8 int ansx,ansy; 9 void p(int t,int x,int y,int h,int l){ 10 for(int i=x;i<=x+h;i++){ 11 for(int j=y;j<=y+l;j++){ 12 s[i][j]=t; 13 } 14 } 15 } 16 int main(){ 17 int a,b,g,k; 18 for(int i=0;i<200005;i++){ 19 for(int j=0;j<200005;j++){ 20 s[i][j]=-1; 21 } 22 } 23 scanf("%d",&n); 24 for(int i=1;i<n;i++){ 25 scanf("%d%d%d%d",&a,&b,&g,&k); 26 p(i,a,b,g,k); 27 } 28 scanf("%d%d",&ansx,&ansy); 29 printf("%d\n",s[ansx][ansy]); 30 return 0; 31 }
本来以为这样傻不兮兮地模拟就够了,结果果断爆空间
然后想起来可以用面积来表达,就A了
1 #include<cstdio> 2 #include<iostream> 3 #include<algorithm> 4 #include<cmath> 5 using namespace std; 6 int s[10005][4]; 7 int n; 8 int ansx,ansy; 9 int main(){ 10 int a,b,g,k; 11 scanf("%d",&n); 12 for(int i=1;i<=n;i++){ 13 scanf("%d%d%d%d",&s[i][1],&s[i][2],&s[i][3],&s[i][4]); 14 s[i][3]+=s[i][1]; 15 s[i][4]+=s[i][2]; 16 } 17 scanf("%d%d",&ansx,&ansy); 18 for(int i=n;i>=1;i--){ 19 if(s[i][1]<=ansx&&s[i][2]<=ansy&&ansx<=s[i][3]&&ansy<=s[i][4]){ 20 printf("%d\n",i); 21 return 0; 22 } 23 } 24 printf("-1\n"); 25 return 0; 26 }
然后写了智障的gcd
第一次枚举结果tle了两个点
然后改写递归的就A了
代码不贴了
其实是找不到了(逃)
然后是判断素数的
1 #include<cstdio> 2 #include<algorithm> 3 #include<cmath> 4 #include<iostream> 5 using namespace std; 6 int a[10005]; 7 int n,ans; 8 int main(){ 9 ans=0; 10 scanf("%d",&n); 11 for(int i=0;i<n;i++){ 12 scanf("%d",&a[i]); 13 } 14 for(int i=0;i<n;i++){ 15 for(int j=2;j<=sqrt(a[i]);j++){ 16 if(a[i]%j == 0){ 17 ans++; 18 break; 19 } 20 } 21 } 22 printf("%d\n",n-ans); 23 return 0; 24 }
明天再贴用埃氏的
就酱