首页 > 其他分享 >CF1864A Increasing and Decreasing

CF1864A Increasing and Decreasing

时间:2023-08-29 11:14:13浏览次数:43  
标签:CF1864A cnt int scanf 构造 严格 Decreasing Increasing

思路

首先,给定了一个序列的首项 \(a_1\) 和末项 \(a_n\) 以及项数 \(n\),要求构造一个严格递增,且差严格递减的序列。

因为是构造题,所以可以随便造,考虑差严格递减,所以从后往前构造比较合理。

因为严格递增,所以差至少为 \(1\),所以 \(a_{n-1}\) 就构造成 \(a_n-1\),\(a_{n-2}\) 就构造成 \(n_{a-1}-2\),以此类推。

那么什么时候无解呢?因为差至少也得是 \(1,2,3\cdots n-1\),所以当 \(a_1+\frac {n\times(n-1)}2>a_n\) 时,代表无法构造。

AC code

#include<bits/stdc++.h>
using namespace std;
int T,n,a[1005],cnt,b;
int main()
{
	scanf("%d",&T);
	while(T--)
	{
		scanf("%d%d",&a[1],&b),scanf("%d",&n),a[n]=b,cnt=1;
		if(a[1]+(n-1)*n/2>b){printf("-1\n");continue;}
		for(int i=n-1;i>1;--i)
		{
			a[i]=a[i+1]-cnt,++cnt;
		}
		for(int i=1;i<=n;++i) printf("%d ",a[i]);
		puts("");
	}
	return 0;
}

标签:CF1864A,cnt,int,scanf,构造,严格,Decreasing,Increasing
From: https://www.cnblogs.com/One-JuRuo/p/17664233.html

相关文章

  • [LeetCode][300]longest-increasing-subsequence
    ContentGivenanintegerarraynums,returnthelengthofthelongeststrictlyincreasingsubsequence. Example1:Input:nums=[10,9,2,5,3,7,101,18]Output:4Explanation:Thelongestincreasingsubsequenceis[2,3,7,101],thereforethelengthis4.E......
  • ARC145F Modulo Sum of Increasing Sequences
    为数不多不用多项式科技的单位根反演题。\(A\)不降比较难搞,所以首先令\(B_i=A_i+i-1\),则\(B\)单调递增。转化为对任意的\(k\in[0,\text{MOD}-1]\),求在\([0,N+M-1]\)中选\(N\)个不同的数,总和对\(\text{MOD}\)取模为\(k\)的方案数。记\(p=\text{MOD},n=N+M\)。列出......
  • 950. Reveal Cards In Increasing Order (Medium)
    Description950.RevealCardsInIncreasingOrder(Medium)Youaregivenanintegerarraydeck.Thereisadeckofcardswhereeverycardhasauniqueinteger.Theintegerontheithcardisdeck[i].Youcanorderthedeckinanyorderyouwant.Initially......
  • hdu 2227 Find the nondecreasing subsequences (树状数组+dp+离散化)
    题意:给定一个长度为n(n<=100000)的整数序列,求其中的递增序列的个数。对于某些序列中的递增序列的个数是可以用dp来求解的,其状态转移方程为:dp[i]=sum(dp[j])+1,j<i&&a[j]<a[i]根据状态转移方程可以得知这样dp的时间复杂度为O(n^2),而对于题目给定的10^6的数量级来说,这样......
  • 【CF1621G】Weighted Increasing Subsequences 题解(优化树状数组)
    CF传送门|LG传送门。优化树状数组+反向处理。Solution发现直接做不好下手。难点主要在求出所有的上升子序列并计算它们分别的贡献。所以需要反向考虑每个单点在什么情况下产生贡献。一个单点会产生多少贡献。一个单点产生贡献的条件很容易得到。一个是在一个上升子序......
  • 「解题报告」CF1621G Weighted Increasing Subsequences
    比较套路的拆贡献题。考虑直接枚举那个\(j\),求有多少包含\(j\)的上升子序列满足这个子序列最后一个数的后面有大于\(a_j\)的数。首先对于\(j\)前面的选择方案是没有影响的,可以直接拿树状数组DP一遍得到。后面的过程我们可以找到从后往前第一个大于\(a_j\)的数的位置......
  • CodeForces 1839E Decreasing Game
    洛谷传送门CF传送门不会,不知道该如何评价。确实是自己的问题。这种题肯定考虑先/后手必胜的充要条件。直接给出结论:若\(a\)能被分成两个和相等的可重集,后手必胜,否则先手必胜。感性理解一下,如果\(a\)能被分成两个和相等的可重集,先手选一个数,后手选另一个可重集中的数。......
  • 「题解」ABC292G Count Strictly Increasing Sequences
    没一眼看出来还是拉了。考虑区间dp,\(f_{i,l,r}\)表示\([l,r]\)前\((i-1)\)位都相同,看后面\([i,n]\)位填数使得递增的方案数是多少。这样已经可以做了,但是还不够,要追求一下最简单的写法。想想,发现每次dp是要分为多个儿子乘起来,内部还要搞个dp。但可以改成每次两个儿子......
  • leetcode 674. Longest Continuous Increasing Subsequence
    Givenanunsortedarrayofintegers,findthelengthoflongestcontinuousincreasingsubsequence(subarray).Example1:Input:[1,3,5,4,7]Output:3Explanation:Thelongestcontinuousincreasingsubsequenceis[1,3,5],itslengthis3.Eventhough[1,3,5......
  • 897. Increasing Order Search Tree
    问题描述yield就是return返回一个值,并且记住这个返回的位置,下次迭代就从这个位置后(下一行)开始。如果是迭代器则应该使用yieldfromclassTreeNode(object):def__init__(self,x):self.val=xself.left=Noneself.right=None#树生成代......