USACO 2014 US Open Fair Photography /// 技巧

本文介绍了一种算法,用于解决区间内奶牛品种数量平衡的问题。通过将不同品种的奶牛赋值为不同的整数,利用前缀和的思想来寻找最长的区间,使得该区间内的两种品种奶牛数量相同。

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

题目大意:

给定n头奶牛 给定n头奶头所在位置和品种 品种只有G H两种

求一段区间的长度 要求区间内包含的品种满足各品种的数量相同

 

将一个品种的值设为1 另一个设为-1

假设 i<j 而 1~i的奶牛前缀和 与 1~j的奶牛前缀和 相等

说明 i+1~j 的奶牛总和为0 即两种奶牛的数量相同

#include <bits/stdc++.h>
using namespace std;
#define LL long long
#define INF 0x3f3f3f3f
#define mem(i,j) memset(i,j,sizeof(i))
#define inc(i,l,r) for(int i=l;i<=r;i++)
#define dec(i,r,l) for(int i=r;i>=l;i--)
#define gcd(i,j) __gcd(i,j);
const int N=1e5+5;
const int mod=1e9+7;
const double eps=1e-8;

int n;
struct NODE { int x,t; }a[N];
bool cmp(NODE p,NODE q) { return p.x<q.x; }
int last[N<<1];

int main()
{
    while(~scanf("%lld",&n)) {
        inc(i,1,n) {
            scanf("%d",&a[i].x);
            char c; scanf(" %c",&c);
            if(c=='G') a[i].t=1;
            else a[i].t=-1;
        }
        sort(a+1,a+1+n,cmp);
        mem(last,0); last[N]=a[1].x;
        int sum=N, ans=0;
        inc(i,1,n) {
            sum+=a[i].t; int t=ans;
            if(last[sum]==0) last[sum]=a[i+1].x;
            else ans=max(ans,a[i].x-last[sum]);
        }
        inc(i,1,n) {
            int j=i;
            while(j<=n && a[j].t==a[i].t) j++;
            j--; ans=max(ans,a[j].x-a[i].x);
            i=j;
        } // 只包含一个品种的情况
        printf("%d\n",ans);
    }

    return 0;
}
View Code

 

转载于:https://www.cnblogs.com/zquzjx/p/10548914.html

内容概要:该论文围绕在平面和曲面基底上实现所需的薄膜厚度梯度展开,开发了一套数学模型用于计算磁控溅射技术沉积的薄膜厚度分布。模型可用于设计屏蔽罩或掩模形状,以拦截源与基底之间的材料,实现特定的薄膜厚度梯度。论文不仅探讨了平面基底上的均匀涂层,还扩展到旋转和曲面基底,考虑了靶材磨损对薄膜厚度分布的影响及通过旋转基底改善均匀性的效果。实验结果与理论计算显示良好一致性。此外,论文还通过迭代优化算法调整屏蔽罩开口宽度来改善厚度均匀性,并分析了不同初始条件对镀膜长度和效率的影响。 适合人群:从事材料科学、物理气相沉积(PVD)技术研究的专业人士,尤其是关注薄膜制备工艺的研究人员和技术人员。 使用场景及目标:①理解磁控溅射过程中如何通过数学模型预测和控制薄膜厚度分布;②学习如何利用掩模技术实现特定的厚度梯度;③掌握优化屏蔽罩开口宽度以提高镀膜均匀性和效率的方法;④探索不同初始条件对镀膜效果的影响,寻找最优工艺参数。 其他说明:论文提供了详细的理论推导、模型构建及其实现代码,包括但不限于余弦定律、高斯分布、掩模优化算法等。这些工具可以帮助读者深入理解磁控溅射过程中的物理现象,并为实际应用提供指导。同时,文中还讨论了模型的局限性和改进方向,如边缘区域的理论预测偏差等问题。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值