2022/3/18

142 篇文章 0 订阅
142 篇文章 1 订阅

每日一题 饿饿 饭饭2

​​​​​​饿饿 饭饭2 - 题目 - Daimayuan Online Judge

思路很简洁,我却没有想到,太菜了,还是要继续练思维!!!!!!

判断这n个数经过无数次操作后能否相等,其实也就暗示了可以在初始状态下手,如果n个数到最后相等了,那说明他们都是有相同的2和3的个数,那只要在初始状态下把每个数都除以2或3直到不能除为止,最后判断这n个数是否相等就可以了

#include<bits/stdc++.h>
#define ll long long
using namespace std;
const int maxn=1e5+5;
ll gcd(ll a,ll b){return b==0?a:gcd(b,a%b);}
ll t,n,a[200005];
int main(){
	scanf("%lld",&t);
	while(t--){
        scanf("%lld",&n);
        for(int i=1;i<=n;i++){
            scanf("%lld",&a[i]);
                while(a[i]%2==0) a[i]/=2;
                while(a[i]%3==0) a[i]/=3;
        }
        bool flag=1;
        for(int i=2;i<=n;i++)
        if(a[i]!=a[i-1]){
            flag=0;break;
        }
        if(flag) printf("YES\n");
        else printf("NO\n");
	}
	return 0;
}

子串分值和

P1523 - [蓝桥杯2020初赛] 子串分值和 - New Online Judge (ecustacm.cn)

朴素的暴力能过一半,树状数组优化一下能过60%,正解是找规律,,,

对于字符串ababc计算每个字符的贡献

第一个字符 a

从第一个字符开始 a,ab,aba,abab,ababc

第二个字符 b

从第二个字符开始 b,ba,bab,babc

从第一个字符开始 ab,aba,abab,ababc

第三个字符 a

从第三个字符开始 a,ab,abc

从第二个字符开始 ba,bab,babc

与第一个字符重复了,不能再算贡献了

第四个字符 b

从第四个字符开始 b,bc

从第三个字符开始 ab,abc

与第二个字符重复往前的都不能算了

第五个字符c

从第五个字符开始 c

从第四个字符开始 bc

从第三个字符开始 abc

从第二个字符开始 babc

从第一个字符开始 ababc

(1条消息) 2020蓝桥杯C/C+ B组 H题:子串分值和(含详细解释,一看就会)_月初XH的博客-CSDN博客_c 子串分值和

#include <bits/stdc++.h>
#define ll long long
#define lowbit(a) (a&(-a))
using namespace std;
const int mod=1000003;
const int inf=0x3f3f3f3f;
ll qpow(ll a,ll b){
    ll res=1;
    while(b){
        if(b&1) res=res*a%mod;
        a=a*a%mod;
        b>>=1;
    }
    return res;
}
ll getinv(ll a,ll mod){return qpow(a,mod-2);}
ll ans=0,last[30],n,t[100005];
char s[100005];
int main(){
   // freopen("in.txt","r",stdin);
    scanf("%s",s+1);
    n=strlen(s+1);
    for(int i=1;i<=n;i++){
        ans+=(n-i+1)*(i-last[s[i]-'a']);
        last[s[i]-'a']=i;
    }
    printf("%lld",ans);
    return 0;
}

平面切分

最后的面数等于直线数加点数,而这个点数统计的时候要注意第i条直线与前i-1条直线求焦点的时候统计的是不重复点的个数

(1条消息) 蓝桥杯2020年第十一届省赛真题-I题-平面切分详细注释_shan1956的博客-CSDN博客

 P1524 - [蓝桥杯2020初赛] 平面切分 - New Online Judge (ecustacm.cn)

#include <bits/stdc++.h>
#define ll long long
#define lowbit(a) (a&(-a))
using namespace std;
const int mod=1000003;
const int inf=0x3f3f3f3f;
ll qpow(ll a,ll b){
    ll res=1;
    while(b){
        if(b&1) res=res*a%mod;
        a=a*a%mod;
        b>>=1;
    }
    return res;
}
ll getinv(ll a,ll mod){return qpow(a,mod-2);}
double a[1005],b[1005];
ll ans=1,n;
pair<double,double>zx;
set<pair<double,double> >s;
void cal(double k,double jj){
    set<pair<double,double> >jd;
    for(auto i=s.begin();i!=s.end();i++){
        if(k!=i->first){
            double x=(jj-i->second)/(i->first-k);
            double y=k*x+jj;
            jd.insert({x,y});
        }
    }
    ans+=jd.size();
}
int main(){
    //freopen("in.txt","r",stdin);
    scanf("%lld",&n);
    for(int i=1;i<=n;i++){
        scanf("%lf%lf",&a[i],&b[i]);
        ll m=s.size();
        s.insert({a[i],b[i]});
        if(m!=s.size()){
            ans++;
            cal(a[i],b[i]);
        }
    }
    printf("%lld\n",ans);
    return 0;
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
一个简单的盈利模型可以使用简单移动平均线(SMA)和价格的相对强弱指标(RSI)。在这里,我们使用5天的SMA和14天的RSI。 步骤1:计算5天的SMA 将前5天每日的收盘价加起来,除以5得到5天SMA。对于第6天以后的每一天,使用前5天的收盘价数据,将最后一个数据删掉,加上当天的收盘价,再除以5得到新的5天SMA。例如,第6天的SMA是(18.39 + 18.22 + 18.62 + 18.36 + 18.45)/ 5 = 18.48,第7天的SMA是(18.22 + 18.62 + 18.36 + 18.45 + 17.89)/ 5 = 18.11。 步骤2:计算14天的RSI 日价格变化的平均值为14天,其中日涨幅不为零的值与日跌幅不为零的值分别计算得到。每天的变化值为当天的收盘价减去前一天的收盘价的绝对值,如果涨了则记为正值,如果跌了则记为负值。然后计算14天涨幅的平均值和14天跌幅的平均值分别为U和D。计算RSI的公式为:RSI = 100 - (100 / (1 + U / D))。例如,第14天的U为(17.43 - 17.89)= 0.46,D为0,因为当天的收盘价较前一天下跌了。前14天的U和D可以使用同样的方法来计算。 步骤3:判断买入或卖出信号 当价格在5天SMA上方,并且RSI超过70时,表明股票处于超买状态,这时候可以考虑卖出;当价格在5天SMA下方,并且RSI低于30时,表明股票处于超卖状态,这时候可以考虑买入。 这是一个简单的数学模型,实际操作是复杂的,需要注意多个因素的综合考虑,并且需要进行风险管理。此处提供的仅为理论模型,仅供参考。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

killer_queen4804

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值