18-12-1 补题记录

2018年广东工业大学文远知行杯新生程序设计竞赛

比赛网址

感觉蛮丢人的其实,毕竟大二的学生去做新生赛的题目,然后还有这样那样的题目不会。

比赛的题面长是一个点,但是我觉得更多的是知识水平的方面。

各种捏他玩梗写作文,出题人也是蛮拼的,但是看完全部题目之后只会觉得四斋蒸鹅心(中国语)。

一共13题,做了8题。许多题目都有同学这样那样的帮助。

3、5、8、9、11没A。

看了一下自己的提交 2018-12-01 15:38:36 是最后一次,也就是说最后的一个半小时在挂机(偷懒)(这个人也真是= =|||没救)。

 

1003 名为青春的悖论β (可以用前缀和做,四重循环暴力也可)(需要再做再理解)

#include <iostream>
#include <string>
#include <cstring>
#include <cstdio>
#include <cmath>
#include <cstdlib>
#include <algorithm>
#include <queue>
#include <map>
#include <set>
#include <sstream>
#define mem(a,b) memset(a,b,sizeof(a))
using namespace std;
const int maxn = 1005;


int main()
{
    int n;
    int sum[505] = {0};
    while (cin >> n)
    {
        int ss = 0;
        for (int i = 1; i <= n; i++)
        {
            int t;
            scanf("%d", &t);
            ss += t;
            sum[i] = ss;
        }
        if (n < 4)
        {
            printf("0\n");
            continue;
        }
        double s = ss/ 2.0;
        int tt = 0;
        for (int i = 1; i <= n; i++)
        {
            for (int j = i + 1; j <= n; j++)
            {
                if (sum[i] + s == sum[j])
                {
                    tt++;
                }
            }
        }
        int ans = 0;
        for (int i = 1; i < tt; i++)
        {
            ans += i;
        }
        cout << ans << endl;
    }
    system("pause");
    return 0;
}

我一直写不出来,我认为的是有两种想法杂糅在了一起,然后交错下就理不清。

然后前缀和的话算是其中一种的进阶的写法(但是我还是没能完全理通)。

 

首先列出一些显而易见的结论,弦和弧的关系:如果弧和弧相等,那么这两条弧对应的边也相等。

那么如果我们有两条弧相等,然后剩下的两条弧也相等,而且相等的两条弧是在圆的两侧,那么这个矩形就成立。

然后,问题是怎么去判断两条弧相等?以上的代码是有参考学长的,利用前缀和。

先把圆分成两个半圆弧,然后我们不保存所有的圆弧,我们保存的是圆弧的和,即1是前1个的和,2是前2个弧的和。

这个时候我们确认弧A是否与弧A对面的弧——弧B相等的时候,只要加上他们的差,也就是半圆弧的长度就可以。

我想不通的地方在于最后的ans+=i,我的猜想是,如果弧A是第一条、第二条、第三条弧的和,那么累加后即为sum[3],如果这个sum[3]与对面的弧相等了,那么意味这sum[3]中还有弧可以和对面的弧相等。

还有一点我想不通的是,这种方法是不用确认另一对边的,却也不会重复计算。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值