2011阿里巴巴程序设计公开赛 / 1002 Fruit Ninja



某神的代码:

#include<stdio.h>
#define max(x,y) (x)>(y)?(x):(y)
#define min(x,y) (x)<(y)?(x):(y)
const int inf=0x7fffffff;struct node      // Fruit
{int adv;int x[11],y[11];     
}Fruit[11];int Fruit_num,ans;//----
int  judge( int x1,int y1,int x2,int y2,int x,int y )
{return ( ( x1-x )*( y2-y ) - ( x2-x )*( y1-y ) );        
}
bool on_megment( int x1,int y1,int x2,int y2,int x3,int y3 )
{int t1=x1-x3;int t2=y1-y3;int t3=x1-x2;int t4=y1-y2;if( ( t1*t4-t2*t3 )==0 )return true;else return false;
}
bool megment( int x1,int y1,int x2,int y2,int p1,int q1,int p2,int q2 )
{if( on_megment( p1,q1,p2,q2,x1,y1 )|| on_megment( p1,q1,p2,q2,x2,y2 ) )return true;int d1=judge( p1,q1,p2,q2,x1,y1 );int d2=judge( p1,q1,p2,q2,x2,y2 );if( d1*d2<0 )  return true;return false;
}//---/*
bool megment1( int p1,int q1,int p2,int q2, int x1,int y1,int x2,int y2 )
{if ( x1 != x2 ) // k exsit{double a =  (y1-y2)/(x1-x2);double b =  y1;if( a*p1+b < q1 && a*p2+b < q2 || a*p1+b > q1 && a*p2+b > q2 )   return false;return true;  }     else{if( p1 > x1 && p2 > x2 || p1 < x1 && p2 < x2)    return false;return true;}
}*/
void getFruit()
{for(int i = 1; i <= Fruit_num; ++i ){scanf("%d",&(Fruit[i].adv) );   for(int j = 1; j <= Fruit[i].adv; ++j ){scanf("%d%d",&(Fruit[i].x[j]),&(Fruit[i].y[j]));     }     }     
}void Search()
{for(int i = 1; i <= Fruit_num; ++i )                     // 选取任意两个水果         for( int j = i+1; j <= Fruit_num; ++j ){for(int a = 1; a <= Fruit[i].adv; ++a )           //第一个水果顶点{   for(int b = 1; b <= Fruit[j].adv; ++b )       //第二个水果顶点  作为直线 {int x1 = Fruit[i].x[a], y1 = Fruit[i].y[a];int x2 = Fruit[j].x[b], y2 = Fruit[j].y[b]; int cut_num = 2;for( int c = 1; c <= Fruit_num; ++c )    //对剩余的水果进行枚举比较 {if( c == i || c == j ) continue;    bool flag = false;int d;for( d = 1; d < Fruit[c].adv; ++d )//选取相邻两顶点                        {if(flag) continue;if( megment(Fruit[c].x[d],Fruit[c].y[d],Fruit[c].x[d+1],Fruit[c].y[d+1] ,x1,y1,x2,y2 )  )flag = true;   }if( megment(Fruit[c].x[d],Fruit[c].y[d],Fruit[c].x[1],Fruit[c].y[1],x1,y1,x2,y2 ) )flag = true;  if(flag) cut_num++;}ans = max(ans,cut_num);}}}
}int main()
{int t, Case = 1;scanf("%d",&t);while(t--){scanf("%d",&Fruit_num);  getFruit();          //Input the Fruit.ans = 0;Search();            //Search the Max numbers of Fruit.if( Fruit_num == 1 ) printf("Case %d: %d\n",Case++,1);elseprintf("Case %d: %d\n",Case++,ans);}    return 0;
}

转载于:https://www.cnblogs.com/tclh123/archive/2011/08/18/2587078.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/404980.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

绑定注意事项——数据源的属性

&#xff08;一&#xff09;属性的绑定总结&#xff08;以下属性均指“数据源的属性”&#xff09;&#xff1a; 1&#xff1a;属性的绑定&#xff08;单体属性和集合属性&#xff09;&#xff1a; 若要 将属性值或引用 的变化 通知给UI&#xff0c;则要求属性具有改变通知的功…

[react] 怎样将多个组件嵌入到一个组件中?

[react] 怎样将多个组件嵌入到一个组件中&#xff1f; import A from /* 个人简介 我是歌谣&#xff0c;欢迎和大家一起交流前后端知识。放弃很容易&#xff0c; 但坚持一定很酷。欢迎大家一起讨论 主目录 与歌谣一起通关前端面试题

Bash脚本报错:“/bin/bash^M: bad interpreter: No such file or directory”

1、问题 github下载一个源码&#xff0c;运行install脚本时&#xff08;# ./myinstal_cp&#xff09;一直报错“/bin/bash^M: bad interpreter: No such file or directory”&#xff0c;如&#xff1a; -bash: ./myinstall_cp: /bin/bash^M: bad interpreter: No such file …

16、常用shell命令方法

1、shell基本 2、父shell在执行shell命令时&#xff0c;通常是创建子shell&#xff0c;继承父shell环境&#xff0c;执行命令&#xff0c;退出&#xff0c;相关环境销毁&#xff1b;父shell得到子shell的退出状态。 通过命令.或source来使其有当前环境中执行&#xff0c;而不创…

Linux学习之exit函数

From: http://hi.baidu.com/homappy/item/549b37c06865877488ad9e75 若父进程在子进程之前终止了&#xff0c;则子进程的父进程将变为init进程&#xff0c;其PID为1&#xff1b;保证每个进程都有父进程。 Linux学习之"exit函数" 先看下"_exit"和"ex…

为什么要设置环境变量,环境变量有什么用?

比如说你要执行 java 命令&#xff0c;你不设置环境变量path包括你的jdk安装路径&#xff0c;那系统去哪找你的java.exe文件。 如果执行某个命令&#xff0c;系统无法在当前文件夹里找到对应的.exe&#xff0c;那么系统就会去path包含的路径找挨个找看是否能知道对应的.exe&…

CM3计算板RTC闹钟唤醒系统

1、前言 一个周期性控制系统的核心为CM3计算板&#xff0c;在电池供电情况下要求尽可能提高使用时长。由于系统空闲时长较多&#xff0c;因此在考虑低功耗的情况下将系统关机以进一步降低功耗。需要注意的是&#xff0c;系统关机后需要在指定时间唤醒&#xff0c;继续执行相关…

[react] 在React中如果去除生产环境上的sourcemap?

[react] 在React中如果去除生产环境上的sourcemap&#xff1f; GENERATE_SOURCEMAPfalse react-scripts buildIf you use the Create-React-APP 个人简介 我是歌谣&#xff0c;欢迎和大家一起交流前后端知识。放弃很容易&#xff0c; 但坚持一定很酷。欢迎大家一起讨论 主目…

[相关总结性文章] 写给即将入行的程序员的一封信

本文来自&#xff1a;安卓航班网 首先&#xff0c;欢迎来到程序员的世界。在这个世界上&#xff0c;不是有很多人想创造软件并解决问题。你是一名hacker&#xff0c;属于那些愿意做一些有挑战性的事情的人。  “当你不创造东西时&#xff0c;你只会根据自己的感觉而不是能力去…

火狐浏览器所有的快捷键

From: http://zhidao.baidu.com/question/218604936.html firefox快捷键搜索类&#xff1a;本页查找&#xff1a; CtrlF 再次查找&#xff1a; F3 输入查找链接&#xff1a; 输入查找文本&#xff1a; / 查找&#xff1a; ShiftF3 网页搜索&#xff1a; CtrlK 或 CtrlEfire…

超文本引用href的几种用法

href"要跳转目标链接"; href"#";当前页面不跳转&#xff08;返回顶部&#xff09; href"###";当前页面不跳转&#xff08;同时不回到顶部&#xff09; href"javascript:;";当前页面不跳转&#xff0c;返回空 href"javscript:void…

[react] React的触摸事件有哪几种?

[react] React的触摸事件有哪几种&#xff1f; onTouchCancel onTouchEnd onTouchMove onTouchStart 个人简介 我是歌谣&#xff0c;欢迎和大家一起交流前后端知识。放弃很容易&#xff0c; 但坚持一定很酷。欢迎大家一起讨论 主目录 与歌谣一起通关前端面试题

arm-linux-gnueabihf gcc8.3交叉编译工具搭建教程

一、运行环境 1.1 执行机环境 ld GNU ld (GNU Binutils for Raspbian) 2.31.1 ldd ldd (Debian GLIBC 2.28-10rpi1) 2.28 Copyright (C) 2018 Free Software Foundation, Inc. gcc (Raspbian 8.3.0-6rpi1) 8.3.0 Copyright (C) 2018 Free Software Foundation, Inc.…

Md5 Md5实现原理

参考&#xff1a; http://wenku.baidu.com/view/ddb1008271fe910ef12df8df.html转载于:https://www.cnblogs.com/85538649/archive/2011/08/24/2152187.html

Linux tcpdump命令详解

From: http://www.cnblogs.com/ggjucheng/archive/2012/01/14/2322659.html 简介 用简单的话来定义tcpdump&#xff0c;就是&#xff1a;dump the traffic on a network&#xff0c;根据使用者的定义对网络上的数据包进行截获的包分析工具。 tcpdump可以将网络中传送的数据包…

Win7 64bit系统下未能加载文件或程序集“System.Data.SQLite”的另一解决办法

在http://www.cnblogs.com/downcom/archive/2009/10/26/1590120.html中我曾给出一种解决方法&#xff0c;但这种方法在本地用64位系统开发程序&#xff0c;但服务器却是使用的32位的系统时却是很麻烦的&#xff0c;一直得改来改去的&#xff0c;今天使用另一种解决方法。 1、打…

整理一下网上看到的几个巧妙小电路

1、单按键开关机电路 思路&#xff1a;按下按键后&#xff0c;MCU输出开机信号PG1&#xff0c;关机则检测KEY1的电平&#xff0c;关键是二极管构成“或”的电路。 2、USB和电池供电切换电路 思路&#xff1a;USB有电则断开电池供电回路&#xff0c;用P-MOS管实现 3、快速放电…

[react] 状态管理器解决了什么问题?什么时候用状态管理器?

[react] 状态管理器解决了什么问题&#xff1f;什么时候用状态管理器&#xff1f; 专注 view 层 React 官网是这么简介的。JavaScript library for building user interfaces.专注 view 层 的特点决定了它不是一个全能框架&#xff0c;相比 angular 这种全能框架&#xff0c;R…

艾伟:ASP.NET跨页面传值技巧总结

关于页面传值的方法&#xff0c;引发了很多讨论。看来有很多人关注这个&#xff0c;我就我个人观点做了些总结&#xff0c;希望对大家有所帮助。 1. 使用QueryString变量 QueryString是一种非常简单的传值方式&#xff0c;他可以将传送的值显示在浏览器的地址栏中。如果是传递…

BCC异或校验 Linux C

1、BCC异或校验 从输入的HEX第一个字节开始&#xff0c;按字节依次循环计算异或值直到HEX结尾字节&#xff0c;得到的最终一个字节值。 2、C程序 /******************************************************************************* _____ ___ ____ ___ _____ _ …