1076 An Easy Task

#include<iostream>
using namespace std;

int main()
{
	int t,y,n,num,year;
	while (cin >> t)
	{
		while (t--&&cin >> y >> n)
		{
			num = 0;
			for (int i = y;; ++i)
			{
				if ((i % 4 == 0 && i % 100 != 0) || i % 400 == 0)
				{
					num++;
				}
				if (num == n)
				{
					year = i;
					break;
				}
			}
			cout << year << endl;
		}
	}
	return 0;
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
C1. Powering the Hero (easy version) time limit per test2 seconds memory limit per test256 megabytes inputstandard input outputstandard output This is an easy version of the problem. It differs from the hard one only by constraints on n and t . There is a deck of n cards, each of which is characterized by its power. There are two types of cards: a hero card, the power of such a card is always equal to 0 ; a bonus card, the power of such a card is always positive. You can do the following with the deck: take a card from the top of the deck; if this card is a bonus card, you can put it on top of your bonus deck or discard; if this card is a hero card, then the power of the top card from your bonus deck is added to his power (if it is not empty), after that the hero is added to your army, and the used bonus discards. Your task is to use such actions to gather an army with the maximum possible total power. Input The first line of input data contains single integer t (1≤t≤1000 ) — the number of test cases in the test. The first line of each test case contains one integer n (1≤n≤5000 ) — the number of cards in the deck. The second line of each test case contains n integers s1,s2,…,sn (0≤si≤109 ) — card powers in top-down order. It is guaranteed that the sum of n over all test cases does not exceed 5000 . Output Output t numbers, each of which is the answer to the corresponding test case — the maximum possible total power of the army that can be achieved.
最新发布
03-05
这是一道算法题,给定一个卡牌堆,每张卡牌有一个能力值,其中有一种卡牌是英雄卡,能力值为,其余卡牌为奖励卡,能力值为正整数。每次可以从卡牌堆顶取出一张卡牌,如果是奖励卡,则可以将其放入奖励卡堆或者丢弃;如果是英雄卡,则将奖励卡堆顶的卡牌能力值加到英雄卡上,然后将英雄卡加入军队,奖励卡堆中的卡牌被丢弃。要求通过这些操作,使得军队的总能力值最大。 输入数据的第一行为测试用例的数量t,接下来t行每行描述一个测试用例,第一行为卡牌堆的大小n,第二行为n个整数,表示卡牌的能力值。 输出t行,每行为对应测试用例的最大可能总能力值。 解题思路: 可以使用一个栈来模拟奖励卡堆,每次取出一张卡牌,如果是奖励卡,则将其放入栈中,如果是英雄卡,则将栈顶的卡牌能力值加到英雄卡上,然后将英雄卡加入军队,栈顶的卡牌被弹出。这样可以保证每次取出的英雄卡都能够获得最大的奖励卡能力值。 具体实现时,可以使用一个变量sum来记录当前军队的总能力值,一个变量max_bonus来记录奖励卡堆中能力值最大的卡牌,每次取出英雄卡时,将max_bonus加到sum中,然后将max_bonus重置为。这样可以保证每次取出英雄卡时都能够获得最大的奖励卡能力值。 时间复杂度为O(n),空间复杂度为O(n)。 代码实现:
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值