zoukankan      html  css  js  c++  java
  • HDU 3952 Fruit Ninja

    题目:http://acm.hdu.edu.cn/showproblem.php?pid=3952

    任意选取两个水果,并选出水果上两个端点组成一条直线去切割其他的水果,就是判断直线与线段是否相交(n^3*k^3)

    代码:

    #include<stdio.h>
    
    struct node2
    {
    	int x,y;
    };
    
    struct node
    {
    	int num;
    	node2 w[11];
    }s[11];
    
    bool  judge(node2 c,node2 d,node2 a,node2 b)//线段端点为a,b,直线上两点c,d
    {  
    	node2 tp1,tp2,tp3;
    
    	tp1.x=a.x-c.x;
    	tp1.y=a.y-c.y;//p1-q1
    	tp2.x=d.x-c.x;
    	tp2.y=d.y-c.y;//q2-q1
    	tp3.x=b.x-c.x;
    	tp3.y=b.y-c.y; //p2-q1
    	//(p1-q1)x(q2-q1)*(q2-q1)x(p2-q1)>=0
    	if((tp1.x*tp2.y-  tp1.y*tp2.x)*(tp2.x*tp3.y-tp2.y*tp3.x)>=0)
    		return true;
    	else 
    		return false;     
    }
    
    int main()
    {
    	int t,n,i,j,k,p,q,r,ans,max,abc;
    	while(scanf("%d",&t)!=EOF)
    	{
    		abc=0;
    		while(t--)
    		{
    			abc++;
    			max=0;
    			scanf("%d",&n);
    			for(i=0;i<n;i++)
    			{
    				scanf("%d",&s[i].num);
    				for(j=0;j<s[i].num;j++)
    					scanf("%d%d",&s[i].w[j].x,&s[i].w[j].y);
    			}
                printf("Case %d: ",abc);
    			if(n==1)
    			{
    				printf("1\n");
    				continue;
    			}
    
    			for(i=0;i<n;i++)
    			{
    				for(j=i+1;j<n;j++)
    				{
    					for(k=0;k<s[i].num;k++)
    					{
    						for(p=0;p<s[j].num;p++)
    					 {
    						 ans=2;
    						 for(q=0;q<n;q++)
    						 {
    							 if(q==i||q==j)
    								 continue;
    							 for(r=0;r<s[q].num-1;r++)
    							 {
    								 if(judge(s[i].w[k],s[j].w[p],s[q].w[r],s[q].w[r+1]))
    								 {									
    									 ans++;
    									 break;
    								 }
    							 }
    						 }
    						 if(max<ans)
    							 max=ans;
    					 }
    					}
    				}
    			}
    			printf("%d\n",max);
    		}
    	}
    	return 0;
    }
    

      

  • 相关阅读:
    Nginx报400 Bad Request
    当前系统代理不是安全代理,是否信任
    nginx反向代理解决跨域问题
    SQL Prompt快捷键
    本地SQL Server怎么连接服务器上的数据库
    进制之间的转换
    计算机知识汇总
    C#语言学习记录
    excel常用技巧
    T-SQL学习记录
  • 原文地址:https://www.cnblogs.com/lujiacheng/p/2145255.html
Copyright © 2011-2022 走看看