Codeforces Round #495 (Div. 2)-C. Sonya and Robots

news/2024/7/2 2:02:37 标签: 模拟, 思维

题意:题目描述其实蛮复杂,反正就是找给出的序列里有多少组不同的<ai,aj>(i<j),a[i]和a[j]可以相同。

题解:超级简单,只需要从后往前统计到每个位置为止有多少种不同的数,最后再从前往后遍历一次,对于每个不同的ai只需要找后面有多少个不同的bi就行了,也就是加上他后面不同的数的个数。

附上代码:

#include<bits/stdc++.h>
typedef long long ll;
using namespace std;


const int maxn=100010;
int a[maxn];
int cnt[maxn];
int vis[maxn];


int main()
{
    int n;
    scanf("%d",&n);
    for(int i=1; i<=n; i++)
        scanf("%d",&a[i]);//输入每个数
    memset(vis,0,sizeof(vis));
    memset(cnt,0,sizeof(cnt));
    for(int i=n; i>=1; i--) //倒着统计每个位置有多少种的数
    {
        cnt[i]=cnt[i+1];
        if( !vis[a[i]] )
        {
            vis[a[i]]=1;
            cnt[i]++;
        }
    }
    memset(vis,0,sizeof(vis));
    ll sum=0;
    for(int i=1; i<=n; i++)
    {
        if( !vis[a[i]] )
        {
            sum += cnt[i+1];
            vis[a[i]]=1;
        }
    }
    printf("%lld\n",sum);
}


http://www.niftyadmin.cn/n/1690567.html

相关文章

题解一

A. Buns&#xff08;多重背包/01背包&#xff09;点击打开题目链接 题意&#xff1a;有n克面团&#xff0c;m种可以做不同馅饼的馅料&#xff0c;第i种馅料有ai克&#xff0c;可以用bi克馅料和ci克面团做一个价值为di的馅饼&#xff0c;也可以不用馅料只用c0克面团做价值为d0的…

Cheapest Palindrome(POJ-3280)

题意&#xff1a;给一个长度为m的字符串s&#xff0c;其中含有n种字母&#xff0c;给出添加和删除某种字母所需要的代价&#xff0c;你可以通过添加或删除某些字母来使这个字符串变成回文串&#xff0c;求使当前这个字符串变成回文串需要的最少代价是多少。 题解&#xff1a;典…

Codeforces Round #469 (Div. 2)——C. Zebras

点击打开原题链接 题意&#xff1a;给你一个只由0和1组成的字符串&#xff0c;求能分成多少个由0开头0结尾并且中间01交替排列的子序列。这里题意需要注意的是&#xff0c;如果原字符串中由1开头或由1结尾是不合法的&#xff0c;如果有两个1挨着也是不合法的。 题解&#xff…

Codeforces Round #469 (Div. 2) ——D. A Leapfrog in the Array

题意&#xff1a;1~n的数按顺序间隔排列&#xff0c;(1 2 3 4 ... n) 中间的空格也要占一位&#xff0c;现在有一种操作&#xff0c;每次把序列最后面那个数移到离它最近的空格里面&#xff0c;直到前n个位置都被填满&#xff0c;没有空格了。给出q次查询&#xff0c;每次…

51nod 1677——treecnt

题意&#xff1a;给你n个结点&#xff0c;n-1条边&#xff0c;要从这n个结点里面选出k个结点&#xff0c;再选出最少边使这些结点之间相互连通&#xff0c;问对于所有选择k个结点的最小选择边数的总和是多少。 题解&#xff1a;因为每次选k个点其实是固定了的&#xff0c;所以…

POJ - 3080——Blue Jeans (KMP)

点击打开题目链接 题意&#xff1a;给m个长度不超过60的字符串&#xff0c;输出这些字符串共同的最长公共子串。&#xff08;多组输入&#xff09;当然&#xff0c;题目给的数据m<10&&字符串长度不超过60&#xff0c;所以可以直接暴力做。这里只讲用KMP来写的解法。…

HDU1520——Anniversary party(树形DP)

题意&#xff1a;有n个人&#xff0c;他们之间有上司和下属关系&#xff0c;每个人有自己的价值&#xff0c;现在要选一部分人使其满足上司和下属不同时被选到的情况下价值总和最大。更直接的讲就是&#xff0c;在一棵树中选价值总和尽量多的节点但是不能同时选到一个节点和它的…

组合数(power oj-2419)

题意&#xff1a;给你 a,n,m, 求a^( C(n,m) ) )% mod&#xff0c;mod 999911659。 题解&#xff1a;组合数取模再加上题目的数据范围是肯定要用lucas定理的&#xff0c;但是根据 欧拉定理可知ans a^( C(n, m) %(mod-1) mod-1 ) %mod,因为这里mod是一个质数&#xff0c;所以…