牛客练习赛-生涯回忆录(dfs,组合数,思维)

题目链接:https://ac.nowcoder.com/acm/contest/9033/C

题意:给定n<=1e5个数字,求所有区间的mex值之和。

题解:很模板的一道题目了,我怎么就想了那么久??第一题都错了5发,看来我还是不够平常心对待比赛emmmm。唉什么时候才能懂得?

1.讨论不选1 

选1(不选2 ,选2 ..........)

唉,递归就递归,怎么就盲目递归,明知道是哪里错了(讨论方式总数的地方)。仔细一思考就出来了

代码:

#include <bits/stdc++.h>

#define ll long long
#define ld double
#define pi acos(-1)
#define pb push_back
#define mst(a, i) memset(a, i, sizeof(a))
#define pll pair<ll, ll>
#define fi first
#define se second
#define mp(x, y) make_pair(x, y)
#define rep(i, a, n) for (ll i = a; i <= n; i++)
#define per(i, n, a) for (ll i = n; i >= a; i--)
#define dbg(x) cout << #x << "===" << x << endl
using namespace std;
template<class T>void read(T &x){T res=0,f=1;char c=getchar();while(!isdigit(c)){if(c=='-')f=-1;c=getchar();}while(isdigit(c)){res=(res<<3)+(res<<1)+c-'0';c=getchar();}x=res*f;}
const ll maxn = 5e5 + 10;
const ll mod = 20000311;
ll n,a[maxn],b,sum[maxn],mul[maxn];
ll qpow(ll a, ll p, ll mod){if(p<=0) return 1;ll ans=1;a=a%mod;while(p){if(p&1)ans=(ans*a)%mod;p>>=1;a=(a*a)%mod;}return ans;}
ll dfs(ll x) {
    if(a[x]==0) return x*mul[x-1]*qpow(2,n-sum[x],mod)%mod;
    return x*mul[x-1]*qpow(2,n-sum[x],mod)%mod+dfs(x+1)%mod;
}
int main() {
    ll _s = 1;
    // read(_s);
    // freopen("testdata.in","r",stdin);
    // freopen("testout.out","w",stdout);
    for (ll _ = 1; _ <= _s; _++) {
        read(n);
        rep(i, 1, n) {
            read(b);
            if (b <= n + 5) a[b]++;
        }
		rep(i,0,n+5) mul[i]=1;
        rep(i, 1, n + 5) {
            sum[i] = sum[i - 1] + a[i],
            mul[i] = mul[i - 1] * (qpow(2, a[i], mod)-1) % mod;
        }
        ll ans = 0;
        ans = dfs(1);
		ans%=mod;
        cout << ans << endl;
    }
    return 0;
}
/*
input:::

output:::

*/

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
图像识别技术在病虫害检测中的应用是一个快速发展的领域,它结合了计算机视觉和机器学习算法来自动识别和分类植物上的病虫害。以下是这一技术的一些关键步骤和组成部分: 1. **数据收集**:首先需要收集大量的植物图像数据,这些数据包括健康植物的图像以及受不同病虫害影响的植物图像。 2. **图像预处理**:对收集到的图像进行处理,以提高后续分析的准确性。这可能包括调整亮度、对比度、去噪、裁剪、缩放等。 3. **特征提取**:从图像中提取有助于识别病虫害的特征。这些特征可能包括颜色、纹理、形状、边缘等。 4. **模型训练**:使用机器学习算法(如支持向量机、随机森林、卷积神经网络等)来训练模型。训练过程中,算法会学习如何根据提取的特征来识别不同的病虫害。 5. **模型验证和测试**:在独立的测试集上验证模型的性能,以确保其准确性和泛化能力。 6. **部署和应用**:将训练好的模型部署到实际的病虫害检测系统中,可以是移动应用、网页服务或集成到智能农业设备中。 7. **实时监测**:在实际应用中,系统可以实时接收植物图像,并快速给出病虫害的检测结果。 8. **持续学习**:随着时间的推移,系统可以不断学习新的病虫害样本,以提高其识别能力。 9. **用户界面**:为了方便用户使用,通常会有一个用户友好的界面,显示检测结果,并提供进一步的指导或建议。 这项技术的优势在于它可以快速、准确地识别出病虫害,甚至在早期阶段就能发现问题,从而及时采取措施。此外,它还可以减少对化学农药的依赖,支持可持续农业发展。随着技术的不断进步,图像识别在病虫害检测中的应用将越来越广泛。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值