zoukankan      html  css  js  c++  java
  • 【2021夏纪中游记】2021.7.19模拟赛

    2021.7.19模拟赛

    比赛概括:

    (mathrm{sum}=8+80+0+0)

    唉。

    T1 玉米田(加强版):

    【Luogu P1879】[USACO06NOV]玉米田Corn Fields

    T2 最大公约数:

    差不多是这个:【Luogu P3455】 [POI2007]ZAP-Queries

    代码:

    
    const int N = 1e6 + 10;
    
    inline ll Read()
    {
    	ll x = 0, f = 1;
    	char c = getchar();
    	while (c != '-' && (c < '0' || c > '9')) c = getchar();
    	if (c == '-') f = -f, c = getchar();
    	while (c >= '0' && c <= '9') x = (x << 3) + (x << 1) + c - '0', c = getchar();
    	return x * f;
    }
    
    bool vis[N];
    int pri[N], phi[N], cnt, sum[N];
    void Prime()
    {
    	phi[1] = 1;
    	for (int i = 2; i <= N - 10; i++)
    	{
    		if (!vis[i]) pri[++cnt] = i, phi[i] = i - 1;
    		for (int j = 1; j <= cnt && i * pri[j] <= N - 10; j++)
    		{
    			vis[i * pri[j]] = 1;
    			phi[i * pri[j]] = phi[i] * (pri[j] - 1);
    			if (!(i % pri[j])) {phi[i * pri[j]] = phi[i] * pri[j]; break;}
    		}
    	}
    	for (int i = 1; i <= N - 10; i++)
    		sum[i] = sum[i - 1] + phi[i];
    }
    
    int t, n;
    ll ans;
    
    int main()
    {
    	Prime();
    	for (t = Read(); t--; )
    	{
    		n = Read();
    		ans = 0;
    		for (int l = 1, r; l <= n; l = r + 1)
    		{
    			 r = n / (n / l);
    			 ans += (2 * sum[n / l] - 1) * ((l + r) * (r - l + 1) / 2);
    		}
    		ans -= n * (n + 1) / 2;
    		ans /= 2;
    		printf ("%lld
    ", ans);
    	}
    	return 0;
    }
    

    T3 「JOI 2020 Final」只不过是长的领带:

    题目大意:

    正文:

    贪心,排个序就行了。

    代码:

    const int N = 2e5 + 10;
    
    inline ll Read()
    {
    	ll x = 0, f = 1;
    	char c = getchar();
    	while (c != '-' && (c < '0' || c > '9')) c = getchar();
    	if (c == '-') f = -f, c = getchar();
    	while (c >= '0' && c <= '9') x = (x << 3) + (x << 1) + c - '0', c = getchar();
    	return x * f;
    }
    
    int n;
    struct node
    {
    	ll val, id;
    	bool operator < (const node &a) const
    	{
    		return val < a.val;
    	}
    }a[N];
    ll b[N], c[N], ans;
    ll mx[N];
    
    int main()
    {
    	n = Read();
    	for (int i = 0; i <= n; i++)
    		a[i] = (node) {Read(), i};
    	for (int i = 1; i <= n; i++)
    		b[i] = Read();
    	sort (a, a + 1 + n);
    	sort (b + 1, b + 1 + n);
    	for (int i = 1; i <= n; i++)
    		ans = max(ans, max(0ll, a[i].val - b[i]));
    	c[a[0].id] = ans;
    	for (int i = n; i; i--)
    		mx[i] = max(mx[i + 1], max(0ll, a[i].val - b[i]));
    	ans = 0;
    	for (int i = 1; i <= n; i++)
    	{
    		swap(a[0], a[i]);
    		ans = max(ans, max(0ll, a[i].val - b[i]));
    		c[a[0].id] = max(ans, mx[i + 1]);	
    	}
    	for (int i = 0; i <= n; i++)
    		printf ("%lld ", c[i]);
    	return 0;
    }
    

    T4 【SHTSC2014】概率充电器(charger):

    详见 【Luogu P4284】[SHOI2014]概率充电器

  • 相关阅读:
    通过SQL Server 2008数据库复制实现数据库同步备份
    SQL Server进制
    Server2008+SQL2008 日志读取代理器未运行 进程无法在“WINXXX”上执行“sp_replcmds”
    swing中使用皮肤包
    JTextArea的自动定位最后一行
    JFrame如何设置背景图片
    swing中单击回车相当于点击登录
    execute、executeUpdate、executeQuery三者的区别(及返回值)
    JTable设置透明
    在eclipse中导入android项目
  • 原文地址:https://www.cnblogs.com/GJY-JURUO/p/15036634.html
Copyright © 2011-2022 走看看