栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

10.10 ccpc预选赛(重赛)

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

10.10 ccpc预选赛(重赛)

补题传送门

7127 Kanade Doesn't Want to Learn CG

完全弹性碰撞,打板后新函数为原函数向右平移2d(d为碰撞点到原函数对称轴的水平距离)

#include
using namespace std;
double a,b,c;
double x0,x1,y0,y1,y2;
double cc;
double d;

double f(double x)
{
	return a*x*x+b*x+c;
}

double ff(double x)
{
	return a*(x-2*d)*(x-2*d)+b*(x-2*d)+c;
}

int main()
{
	int t;
	cin>>t;
	while(t--)
	{
		scanf("%lf%lf%lf",&a,&b,&c);
		scanf("%lf%lf%lf%lf%lf",&x0,&x1,&y0,&y1,&y2);
		int flag=0;
		if(f(x0)>y0&&f(x1)y0&&f(x1)>y0&&f(x1)<=y2)
		{
			double xx=-b/(2*a);
			d=x1-xx;
			if(ff(x0) 

7129 Primality Test

打表。

#include
using namespace std;

int t;
long long x;

int main()
{
    scanf("%d",&t);
    while(t--)
    {
        scanf("%lld",&x);
        if(x!=1)puts("NO");
        else puts("YES");

    }
    return 0;
}

7131 Nun Heh Heh Aaaaaaaaaaa

dp[i][j]统计到i位置时前缀中第j个字母出现的次数,遍历每个位置,加上dp[i][j]*后面a数量的方案数

#include

#define ll long long
using namespace std;
const int maxn = 1e5 + 10;
const int mod = 998244353;
ll pre[maxn][10], suf[maxn];
char s[maxn];

ll fast(ll a, int b) {
    ll ans = 1;
    while (b) {
        if (b & 1) ans = ans * a % mod;
        a = a * a % mod;
        b >>= 1;
    }
    return ans;
}

int main() {
    int t;
    cin >> t;
    while (t--) {
        ll ans = 0;
        scanf("%s", s + 1);
        int len = strlen(s + 1);
        memset(pre, 0, sizeof(pre));
        memset(suf, 0, sizeof(suf));
        for (int i = 1; i <= len; i++) {
            for (int j = 1; j <= 9; j++)
                pre[i][j] = pre[i - 1][j];
            if (s[i] == 'h') {
                pre[i][4] = (pre[i - 1][4] + pre[i - 1][3]) % mod;
                pre[i][6] = (pre[i - 1][5] + pre[i - 1][6]) % mod;
                pre[i][7] = (pre[i - 1][7] + pre[i - 1][6]) % mod;
                pre[i][9] = (pre[i - 1][9] + pre[i - 1][8]) % mod;
            }
            if (s[i] == 'e') {
                pre[i][8] = (pre[i - 1][8] + pre[i - 1][7]) % mod;
                pre[i][5] = (pre[i - 1][4] + pre[i - 1][5]) % mod;
            }
            if (s[i] == 'n') {
                pre[i][3] = (pre[i - 1][3] + pre[i - 1][2]) % mod;
                pre[i][1] = (pre[i - 1][1] + 1) % mod;
            }
            if (s[i] == 'u')
                pre[i][2] = (pre[i - 1][2] + pre[i - 1][1]) % mod;
        }
        suf[len] = (s[len] == 'a');
        for (int i = len - 1; i; i--)
            suf[i] = suf[i + 1] + (s[i] == 'a');
        for (int i = 1; i <= len; i++)
            if (s[i] == 'a')
                ans = (ans + pre[i][9] * fast(2, suf[i]-1) % mod) % mod;
        printf("%lldn", ans);
    }
    return 0;
}

7136 Jumping Monkey

考虑删点权最大的点(设为u),那么此时与该点联通的所有点最终都能到达u。对剩下的连通块递归可得到答案。但我不会我只会并查集。反向考虑按点权从小到大枚举节点u,根据并查集关系将u作为所有与u相连的(之前枚举过的)连通块的根建一棵新树,每个节点的深度即为答案

#include 
#define ll long long
using namespace std;
const int maxn = 1e5 + 7;
vector E[maxn],tu[maxn];
int n,fa[maxn],dep[maxn];

struct node {
    int x,val;
}a[maxn];

bool cmp(node a,node b) {
    return a.val < b.val;
}

int fid(int x) {
    return x == fa[x] ? x : fa[x] = fid(fa[x]);
}

void dfs(int u,int fa)
{
    dep[u] = dep[fa] + 1;
    for (auto v:tu[u])
	{
        if(v == fa) continue;
        dfs(v,u);
    }
}

void solve() {
    int x,y;
    scanf("%d",&n);
    for (int i=1; i<=n; ++i) {
        E[i].clear();
        tu[i].clear();
        fa[i] = dep[i] = 0;
    }
    for (int i=1; i<=n-1; ++i) {
        scanf("%d%d",&x,&y);
        E[x].push_back(y);
        E[y].push_back(x);
    }
    for (int i=1; i<=n; ++i) {
        scanf("%d",&a[i].val);
        a[i].x = i;
    }
    sort(a+1,a+1+n,cmp);
    for (int i=1; i<=n; ++i)
	{
        fa[a[i].x] = a[i].x;
        for (auto v:E[a[i].x])
		{
            if(fa[v])
			{
                int V = fid(v);
                fa[V] = a[i].x; 
                tu[V].push_back(a[i].x);
                tu[a[i].x].push_back(V);
            }
        }
    }
//    for(int i=1;i<=n;i++)
//	{
//		cout< 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/316712.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号