NWPU_四月月赛

MD,这场月赛知道的时候,只剩下不到一半的时间了,于是在比赛结束前,立马拿下3道签到题,还不算太渣。

C - A+B

Time Limit: 5000 ms        Memory Limit: 65536 KB

Submit

Description

有一个n个数的序列,每个数都是不同的,从这个序列中选出四个数问有多少个四元组满足a+b=c+d。

Input

输入第一行包含一个整数T,表示接下来有T组数据。(T<=10)

每一组数据有一个整数n(4<=n<=1000),表示总共有n个数。

接下来一行是n个数,保证每个数字都不同,数的大小0<x<=10^9。

Output

输出T组,每组数据一行,先输出“Case #t: ”。

接下来输出四元组的个数。

Sample Input

2
4
1 2 3 4
4
1 2 4 6

Sample Output

Case #1: 1
Case #2: 0

Hint

Huge input,scanf is recommended.

解题思路:

  这题拿到后的第一反应是POJ上那道折半搜索,就是说,给你4个长度相同的数组,让你每次只能从每个数组中取出来一个数字,使得这些数字的和加起来满足

  a[i]+b[j]+c[k]+d[l] == 0,当然,直接O(n4)就是作死,直接把这个等式划分成两部分,然后利用二分折半搜索就可了。

  关于这道题就比较水了,上来后O(n2)直接预处理相邻两项的和,然后线性扫一遍,把相同的个数拿出来做C(k,2)的组合数就是我们要的答案了

代码:

 1 #include<cstdio>
 2 #include<cstring>
 3 #include<cstdlib>
 4 #include<cmath>
 5 #include<iostream>
 6 #include<algorithm>
 7 using namespace std;
 8 int a[1005],cnt[1000005];
 9 int main()
10 {
11     int T;
12     scanf("%d",&T);
13     for(int ca=1;ca<=T;ca++)
14     {
15         int n;
16         scanf("%d",&n);
17         for(int i=1;i<=n;i++)
18         {
19             scanf("%d",&a[i]);
20         }
21         int tot=0;
22         for(int i=1;i<=n;i++)
23         {
24             for(int j=i+1;j<=n;j++)
25             {
26                 cnt[tot++]=a[i]+a[j];
27             }
28         }
29         //printf("%d\n",tot);
30         sort(cnt,cnt+tot);
31         int now=1;
32         long long ans=0;
33         for(int i=1;i<tot;i++)
34         {
35             if(cnt[i]==cnt[i-1])
36             {
37                 now++;
38             }
39             else
40             {
41                 ans+=now*(now-1)/2;
42                 now=1;
43             }
44         }
45         ans+=now*(now-1)/2;
46         printf("Case #%d: %lld\n",ca,ans);
47     }
48     return 0;
49 }
时间: 2024-11-10 20:28:35

NWPU_四月月赛的相关文章

四月月赛解题报告

题目挂在wustoj上,不知道什么原因不能粘贴链接.. 第一题题号为1314..这题是智力题...换成7的阶乘就可以了.. 代码如下. #include<cstdio> int main() { printf("...............................................................................................\n"); printf("..#................

【记录】写题一时爽,一直写题一直爽

//小声嘀咕 这是xk姐姐那里偷来的补题模板 感觉很棒 先借鉴用一下   初始时间 A B C D E F G H I J K L M     过题数/总题数 2019ZSTU四月月赛 04/21 L                    / / /  1/10                                                                                                                      

在四月

总说时间过得很快,一晃就是四月中旬. 是时候对最近的学习.生活进行相应的总结. [学习] 从开学到现在,准备论文都快两个月了. 从最初的换会议,以及论文的延期,实在煎熬. 但是,在准备的过程当中自己也学到很多东西. 比如在写论文的时候会注意怎么去组织论文的结构.英文表达自己观点. 比较欠缺的是,逻辑表达欠缺,话题容易脱节,表达句型不够专业. 所以,今天在看别人论文的时候,记录下别人优美的句子.句型, 在以后自己写作过程当中使用. 要想发出更多的论文.更高质量的论文,希望自己在后面的学习过程中,

月赛-Crackhash

Crackhash 这个题目是我为月赛出的,完全仿照自mma 1st simple_hash. 这道题目比较有意思的地方在于在32位的程序中模拟了64位的算术运算. 题目的思路很清晰.要求输入全为数字,然后对输入的数字求hash值并判断是否正确.如下图: 所以关键的部分就在于cacl_hash这个函数,进入其中. 逻辑也很简单,因此进入sub_80487EC中,会看到如下: 里面是个递归程序,并且有些复杂,并不容易较快分析清楚.不过没关系,这并不耽搁我们做题. 上GDB,我们按照cacl_has

第五届在线编程大赛月赛第一题:完全平方数的个数

第五届在线编程大赛月赛第一题:完全平方数的个数 题目详情: 给定整数区间[A,B]问其中有多少个完全平方数. 输入格式: 多组数据,包含两个正整数A,B 1<=A<=B<=2000000000. 输出格式: 每组数据输出一行包含一个整数,表示闭区间[A,B]中包含的完全平方数的个数. 答题说明: 输入样例 1 1 1 2 3 10 3 3 输出样例: 1 1 2 0 java代码: import java.util.Scanner; public class One { public s

【洛谷】【洛谷月赛】4月月赛Round 1/2

洛谷月赛"月"来"月"丧了,一月更比一月丧,做得我十分不"月"-- 4月的两轮月赛,都只会T1,就写一下吧,等待后续更新-- 先看看Round1的T1: [R1T1] 网址:点我 [题意简述] 给定一个长度为n的序列,其中的元素均是1~m之间的正整数. 要求从中选出k个数,交换它们的位置,其他未被选中的数保持不变,使得变换后的序列中,相等的数总是排在一段连续区间. 要求最小化k. 1<=n<=105,1<=m<=20 [思

奥斯科四月即将开班! &nbsp; &nbsp; &nbsp;

三月不努力,四月徒伤悲!一转眼又到三月底了,三月你学习了吗?如果没有的话,奥斯科四月开班计划又要出来了!一大波课程即将来袭,你准备好了吗?奥斯科四月开班计划即将开展HCNA.HCNP.HCIE以及云计算课程! 小伙伴赶紧看过来吧!奥斯科的小伙伴等你的加入哦! 奥斯科国际IT教育中心 地址:合肥市蜀山区潜山路320号新华国际广场C座8楼 上课方式 1.支持现场学习 2.支持线上同步收听 上课时间 综合班:平时晚上 19:00-21:30+周六或周日 9:00-17:00 脱产班:工作日 9:00-

fzu月赛 2203 单纵大法好 二分

Accept: 8    Submit: 18Time Limit: 5000 mSec    Memory Limit : 65536 KB  Problem Description 人在做,天在看,单纵不怂保平安 众娘皆为轮回来,敢教POI进夜战. 勿怪战列低智商,航母不是一个样? 假摔不虚有损管,大破进击是真相! 老S最近喜欢上某个搜集战舰的游戏,这个游戏中很重要的一个内容是能编排自己的战舰,通过出击完成任务来获取资源或新的战舰.大家都说老S是一个“直男”,所以他喜欢把战舰排成一条直线.目

四月出境游

来到日本,感受粉嫩动人的浪漫"樱花雨"是必须的体验.中国国旅广东公司日韩部总监黄培容介绍,今年3月日本气温较往年低,预计樱花花期比往年推迟4-10天左右,从南往北依次开放,如3月下旬的福冈.广岛.大阪.名古屋,4月初的东京,5月初的北海道和函馆等.该社目前的日本线路安排了走访多处赏樱名所,包括八景岛.大阪城公园.清水寺.岚山公园.上野公园.平和公园.隅田公园.河口湖等,其中比较受游客欢迎的体验包括搭乘"八景岛樱花列车"穿行于500米浪漫樱花道.参加首都圈内最大的河口