zoukankan      html  css  js  c++  java
  • CodeForces

    题目链接

    题目大意

      一共需要n种物资,每个物资(a_i)个。还可以使用加速器,当产出t个s产品之后会奖励一个u产品,奖励一次之后就不会再奖励了,并且奖励的产品也会算进产出里然后使用其他的加速器。

    解题思路

      因为一次只会产生一种奖励,并且奖励还可以产生连锁反应,所以使用一次加速器,要么会使结果减1,要么不变,要么就加1。

    代码

    const int maxn = 2e5+10;
    const int maxm = 2e5+10;
    map<P, int> mp;
    int arr[maxn];
    int main() {
    	int n; cin >> n;
    	ll ans = 0;
    	for (int i = 1; i<=n; ++i) cin >> arr[i], ans += arr[i];
    	int q; cin >> q;
    	int s, t, u;
    	while(q--) {
    		scanf("%d%d%d", &s, &t, &u);
    		int v = mp[{s, t}];
    		if (v) {
    			++arr[v];
    			if (arr[v]>0) ++ans;
    		}
    		mp[{s, t}] = u;
    		if (arr[u]>0) --ans;
    		--arr[u];
    		printf("%lld
    ", ans);
    	}
    	return 0;
    } 
    
    
  • 相关阅读:
    Unity内生成深度贴图
    曲线细分
    Hermite插值
    查看静态库支持的CPU架构
    NLua引擎
    ImWindow
    Xenko Engine
    Fast Shadow Receiver
    2D色彩变换
    RVO
  • 原文地址:https://www.cnblogs.com/shuitiangong/p/14457515.html
Copyright © 2011-2022 走看看