洛谷乐多赛 yyy loves Maths VI (mode)

题目描述

他让redbag找众数

他还特意表示,这个众数出现次数超过了一半

一共n个数,而且保证有

n<=2000000

而且每个数<2^31-1

时间限制 1s

空间限制 3.5M(你没看错3.5M)(实际后来改成了5M)

 

题解:

一眼众数感觉很水,直接存下来,sort一下,然后统计连续出现次数

但是5M???

发现,2000000的空间开不下, 但是可以开下一半??

然后就先输入前1000000个。sort,记录出现次数最多的数,和它的出现次数。

再输入剩下的,sort,记录出现次数最多的数,和它的出现次数。

两者出现次数较大的就是众数。

证明??

题目关键:众数出现次数超过一半。

说明,两个最多的数一定至少有一个是那个众数。然后,最多数不是众数的那个,一定不如另一个是众数的数出现次数多。

就可以做了。

代码:

#include<bits/stdc++.h>
using namespace std;
const int N=1000000+2;
int a[N];
int mx1,num1,tot;
int mx2,num2;
int n;
int main()
{
    scanf("%d",&n);
    for(int i=1;i<=n/2;i++){
        scanf("%d",&a[i]);
    }
    sort(a+1,a+n/2+1);
    for(int i=1;i<=n/2;i++){
        tot=1;
        while(i+1<=n/2&&a[i]==a[i+1]){
            tot++;i++;
        }
        if(tot>mx1) mx1=tot,num1=a[i];
    }
    for(int i=1;i<=n-n/2;i++){
        scanf("%d",&a[i]);
    }
    sort(a+1,a+n-n/2+1);
    for(int i=1;i<=n-n/2;i++){
        tot=1;
        while(i+1<=n-n/2&&a[i]==a[i+1]){
            tot++;i++;
        }
        if(tot>mx2) mx2=tot,num2=a[i];
    }
    if(mx1<mx2) swap(num1,num2);
    printf("%d",num1);
    return 0;
}

 

原题3.5M就不行了。

但是,还有什么摩尔投票法。很机智。连1000000数组也不用。

开一个房子,进去一个数,如果房子里没有数,就打上它的标记。

如果房间里的数相同,cnt++

如果不同,带走一个这个数。即cnt--

最后剩下的一定是众数。

因为占比过半,所以为所欲为啊。

代码就不贴了。

 

转载于:https://www.cnblogs.com/Miracevin/p/9601258.html

在TouchDesigner中,你可以使用CHOP(通道操作)节点中的LFO(低频振荡器)和Maths(数学)节点来控制图像。以下是一个简单的例子: 1. 创建一个Movie File In节点,将其命名为“movie_in”。 2. 将Movie File In节点的输出连接到一个常规的TOP(图像处理)节点。 3. 创建一个LFO CHOP节点,并将其命名为“lfo”。 4. 在LFO CHOP节点的参数页面上,设置“Frequency”参数为适当的值,以控制LFO的速度。 5. 创建一个Maths CHOP节点,并将其命名为“maths”。 6. 在Maths CHOP节点的参数页面上,选择“Add”操作,并将其输入连接到“lfo”节点的输出。 7. 在Maths CHOP节点的参数页面上,设置“Value 1”参数为1,以控制LFO的振幅。 8. 创建一个Constant CHOP节点,并将其命名为“constant”。 9. 在Constant CHOP节点的参数页面上,设置“Value”参数为0.5,以控制图像的亮度。 10. 创建一个Maths CHOP节点,并将其命名为“maths2”。 11. 在Maths CHOP节点的参数页面上,选择“Multiply”操作,并将其输入连接到“constant”节点的输出。 12. 将“maths”节点的输出连接到“maths2”节点的第一个输入。 13. 将TOP节点的亮度参数连接到“maths2”节点的输出。 现在,你可以控制图像的亮度,以及LFO的速度和振幅,来创建一个动态的图像效果。你可以通过调整LFO节点和Maths节点的参数来实现不同的效果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值