gdut 2016校赛决赛 Problem F 我是好人4

本文介绍如何使用容斥原理解决一个复杂的问题——找出10亿以内不是给定多个数的倍数的正整数数量。通过实例解析,详细说明了容斥原理的应用过程,并给出了解题代码。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

广工校赛时遇到这道题10E大的数打表肯定不行,起初我想到了直接相除,然后减去他们的最小公倍数,当然只限于有两个数,三个数的话就有点懵了,不知道怎么加减,四个数更别提了,而题目是50个数,当时还不知道容斥原理,怎么想也想不明白到底应该怎么写,比赛时这道题的AC的人也特别的少。赛完百度了下才知道容斥原理这个词,即:
A1并A2并A3并…..An = A1+A2+..An- ( A1交A2 + A1A3 + A1交A4 +…. An-1交An ) + (A1交A2交A3 + A1交A2交A4 + ….An-2交An-1交An) - (-1)^n*(A1交A2交A3交…An);
利用这个原理将所有情况加减一遍就算出来了。
Problem F: 我是好人4
Description
众所周知,我是好人!所以不会出太难的题,题意很简单

给你n个数,问你1000000000(含1e9)以内有多少个正整数不是这n个数任意一个的倍数
最后友情提供解题代码(我真是太好人了)
void solve(int p[], int n)
{
int ans = 0;
for (int i = 1; i <= 1e9; i++)
{
int fl = 0;
for (int j = 0; j < n; j++)
{
if (i % p[j] == 0)
{
fl = 1;
break;
}
}
if (fl == 0)ans++;
}
printf(“%d\n”, ans);
}

Input
第1行是一个整数T,表示共T组数据。 接下来是T组数据,每组数据第1行是正整数n(n<=50),接下来是n个正整数(小于等于1000),任意两数用1个空格隔开,最前数前面与最后数后面无空格

Output
输出T行,对应T组数据。(T<=10) 每行输出这样的正整数有多少个

Sample Input
342 3 5 71213854 101 143 282 538 922 946 286 681 977 892 656 907
Sample Output
228571428500000000968701719

代码:

#include<stdio.h>
#include<string.h>
#define ll long long
#define maxn 1000000000
ll a[60],b[60],k,s=0;
ll gcd(ll c, ll d)
{
    return d?gcd(d,c%d):c;
}
ll lcm(ll c,ll d)
{
    return c*d/gcd(c,d);
}
void dfs(ll qi,ll shu,ll mo)
{
    if(qi==k)
    {
        if(mo)
        {
            if(mo&1)
                s-=maxn/shu;
            else
                s+=maxn/shu;
        }
        return;
    }
    if(shu%a[qi]==0) return;
    dfs(qi+1,shu,mo);
    shu=lcm(a[qi],shu);
    if(shu<=maxn)
        dfs(qi+1,shu,mo+1);
}
int main()
{
    ll N;
    scanf("%lld",&N);
    while(N--)
    {
        k=0;
        ll j,n,i;
        scanf("%lld",&n);
        for(i=0; i<n; i++)
            scanf("%lld",&b[i]);
        for(i=0; i<n; i++)
        {
            for(j=0; j<n; j++)
            {
                if(j==i||b[j]==-1)
                    continue;
                if(b[i]==-1)
                    break;
                if(b[i]%b[j]==0)
                {
                    b[i]=-1;
                    break;
                }
            }
        }
        memset(a,0,sizeof(a));
                int f=0;
        for(i=0; i<n; i++)
        {
            if(b[i]!=-1)
                a[k++]=b[i];
                if(b[i]==1)
                 f=1;
        }
        s=maxn;
        if(f)
        {
            printf("0\n");
            continue;
        }
        dfs(0 ,1 ,0 );
        printf("%lld\n",s);
    }
}
资源下载链接为: https://pan.quark.cn/s/abbae039bf2a 无锡平芯微半导体科技有限公司生产的A1SHB三极管(全称PW2301A)是一款P沟道增强型MOSFET,具备低内阻、高重复雪崩耐受能力以及高效电源切换设计等优势。其技术规格如下:最大漏源电压(VDS)为-20V,最大连续漏极电流(ID)为-3A,可在此条件下稳定工作;栅源电压(VGS)最大值为±12V,能承受正反向电压;脉冲漏极电流(IDM)可达-10A,适合处理短暂高电流脉冲;最大功率耗散(PD)为1W,可防止器件过热。A1SHB采用3引脚SOT23-3封装,小型化设计利于空间受限的应用场景。热特性方面,结到环境的热阻(RθJA)为125℃/W,即每增加1W功率损耗,结温上升125℃,提示设计电路时需考虑散热。 A1SHB的电气性能出色,开关特性优异。开关测试电路及波形图(图1、图2)展示了不同条件下的开关性能,包括开关上升时间(tr)、下降时间(tf)、开启时间(ton)和关闭时间(toff),这些参数对评估MOSFET在高频开关应用中的效率至关重要。图4呈现了漏极电流(ID)与漏源电压(VDS)的关系,图5描绘了输出特性曲线,反映不同栅源电压下漏极电流的变化。图6至图10进一步揭示性能特征:转移特性(图7)显示栅极电压(Vgs)对漏极电流的影响;漏源开态电阻(RDS(ON))随Vgs变化的曲线(图8、图9)展现不同控制电压下的阻抗;图10可能涉及电容特性,对开关操作的响应速度和稳定性有重要影响。 A1SHB三极管(PW2301A)是高性能P沟道MOSFET,适用于低内阻、高效率电源切换及其他多种应用。用户在设计电路时,需充分考虑其电气参数、封装尺寸及热管理,以确保器件的可靠性和长期稳定性。无锡平芯微半导体科技有限公司提供的技术支持和代理商服务,可为用户在产品选型和应用过程中提供有
资源下载链接为: https://pan.quark.cn/s/9648a1f24758 在 JavaScript 中实现点击展开与隐藏效果是一种非常实用的交互设计,它能够有效提升用户界面的动态性和用户体验。本文将详细阐述如何通过 JavaScript 实现这种功能,并提供一个完整的代码示例。为了实现这一功能,我们需要掌握基础的 HTML 和 CSS 知识,以便构建基本的页面结构和样式。 在这个示例中,我们有一个按钮和一个提示框(prompt)。默认情况下,提示框是隐藏的。当用户点击按钮时,提示框会显示出来;再次点击按钮时,提示框则会隐藏。以下是 HTML 部分的代码: 接下来是 CSS 部分。我们通过设置提示框的 display 属性为 none 来实现默认隐藏的效果: 最后,我们使用 JavaScript 来处理点击事件。我们利用事件监听机制,监听按钮的点击事件,并通过动态改变提示框的 display 属性来实现展开和隐藏的效果。以下是 JavaScript 部分的代码: 为了进一步增强用户体验,我们还添加了一个关闭按钮(closePrompt),用户可以通过点击该按钮来关闭提示框。以下是关闭按钮的 JavaScript 实现: 通过以上代码,我们就完成了点击展开隐藏效果的实现。这个简单的交互可以通过添加 CSS 动画效果(如渐显渐隐等)来进一步提升用户体验。此外,这个基本原理还可以扩展到其他类似的交互场景,例如折叠面板、下拉菜单等。 总结来说,JavaScript 实现点击展开隐藏效果主要涉及 HTML 元素的布局、CSS 的样式控制以及 JavaScript 的事件处理。通过监听点击事件并动态改变元素的样式,可以实现丰富的交互功能。在实际开发中,可以结合现代前端框架(如 React 或 Vue 等),将这些交互封装成组件,从而提高代码的复用性和维护性。
<think>好的,用户想找SCAU2023年程序设计竞题目。我需要先确认现有的引用内容中有没有相关信息。根据提供的引用,引用[1]提到了2022年文远知行杯GDUT第十六届程序设计竞,但用户问的是2023年的题目。引用[2]和[3]分别涉及SCAU的学习笔记和数位类统计问题,但没有提到2023年的比信息。 接下来,我应该检查是否有其他来源的信息,但根据用户提供的引用,似乎没有相关内容。因此,我需要建议用户查看官方渠道,如学官网、OJ系统或联系组织方。同时,可以推荐参考往届题目,比如引用[1]中的2022年题解,或者引用[3]提到的数位类统计问题,这些可能对备有帮助。此外,引用[2]提到SCAU的OJ系统,用户可能需要在那里查找最新信息。最后,生成相关问题,帮助用户进一步探索备资源。</think>关于SCAU 2023年程序设计竞题目,目前公开渠道暂未发现完整题目集的公开资料。以下是建议的获取路径和相关参考资源: 1. **内OJ系统查询** SCAU的编程作业、考试和题目通常发布在内OJ平台[^2]。建议登录系统后: - 查看"比"或"竞"板块 - 筛选2023年时间范围的比 - 注意可能需要特定权限或密码 2. **联系竞组织方** 可通过以下途径获取最新信息: - 计算机学院教务办公室 - 算法竞社团(如ACM集训队) - 往届参选手交流群 3. **参考往届真题模式** 以2022年为例,题目包含: - 基础算法题(如贪心、排序) - 数据结构题(树、图相关) - 动态规划/数位统计问题[^3] - 数学建模类题目 4. **推荐训练资源** 可参考同类高题型: ```python # 示例:经典题目类型 problem_types = [ '数位DP(如SPOJ SORTBIT)', '图论算法(最短路径、网络流)', '组合数学问题', '字符串处理(KMP/AC自动机)' ] ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值