A- FZU - 2205

题目链接
题意很简单,
一个国家有 N 个城市,国王不希望国家中存在三个城市之间能够互相直接到达,但道路要求尽可能的多,道路是双向边,且无重边无自环。

国王希望你最好能解决这个问题。求最多存在多少条道路

一开始看题目觉得是个公式题,然后大概的猜了一个,2 4 7 … 然后,没对。
然后,暂时放下思考。去做了其它题目。

解题思路:
根据题意,显然我们不能让三个连在一起,那么可以将城市分成二分图形式;
比如
城市个数 道路
2
A B 1  A与B连 就一条
3
A B 2  A C分别和B连就两条
C
5 
A B    左边A C E与右边 B连共三条 D同理也是三条 
C D  6
E      
所以就是
2 1
3 2
4 4
5 6
可以推出规律为(n/2)*(n-n/2);
或者你可以这样推:
左边和右边 如果是偶数,直接n/2相乘.
如果是奇数,那么左边是n/2右边就是剩下的乘与n/2 剩下的就是n-(n/2);

#include<iostream>
#define pi acos(-1.0)
#define MaxN 0x3f3f3f3f
#define MinN 0xc0c0c0c0
using namespace std;
typedef unsigned long long ull;
typedef long long ll;
const int N=1e3+10;
const int M=1e9;
int t,n;
int main()
{
   
    cin>>t;
    while(t--)
    {
   
        cin>>n;
        cout<<(n/2)*(n-n/2)<<endl;
    }
    return 0;
}
全部评论

相关推荐

不愿透露姓名的神秘牛友
昨天 12:11
我最近都有点不想活了,天天早10晚11的,还问我爱不爱她目前的状态别说爱谁了,没扇谁就不错了。是不是大家都是一进节子,只有工作没有爱情了
AzureSkies:在字节的时候找的就是字节的,飞书太适合恋爱人士了,能看到是不是已读,是不是在会议中。简直冥婚好伴侣
投递字节跳动等公司9个岗位
点赞 评论 收藏
分享
06-20 19:40
中原工学院 Java
网络存储:十几天不会让你拉人办卡就结束了吧?
点赞 评论 收藏
分享
05-05 21:45
已编辑
广州大学 Java
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务