首页 > 其他分享 >洛谷100题计划(10/100)

洛谷100题计划(10/100)

时间:2023-08-23 17:47:52浏览次数:39  
标签:10 洛谷 int cin ++ using 100

洛谷100题计划(10/100)

P1031 [NOIP2002 提高组] 均分纸牌 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)

因为第\(1\)堆只能移动到第\(2\)堆,且第\(N\)堆只能移动到第\(N-1\)堆,所以直接从左边往右边转移就行,这里是都减了一个平均数,看所有堆都差多少,如果左右两个都没过平均数,可以看成先让右边的给点纸牌让左边达到平均数,然后左边欠的让右边去欠,这个过程右边给了左边一次所以要加上

#include<bits/stdc++.h>

using i64 = long long;

using namespace std;

typedef pair<i64, i64> PII;

int main() {
    ios::sync_with_stdio(false);
    cin.tie(nullptr);

    int N;
    cin >> N;
    vector<i64> a(N);
    i64 sum = 0;
    for(auto &i : a) {
        cin >> i;
        sum += i;
    }

    sum /= N;
    for(auto &i : a)
        i -= sum;

    int ans = 0;
    for(int i = 0;i < N - 1;i ++){
        if(a[i] != 0){
            a[i + 1] += a[i];
            ans ++;
        }
    }

    cout << ans << '\n';

    return 0;
}

P1036 [NOIP2002 普及组] 选数 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)

以前做过的直接上代码了(

反正\(n\)很小,直接暴搜了,\(m\)就是现在放了几个数,\(sum\)就是现在放了的数的和,\(st\)就是放第几个数(

#include<bits/stdc++.h>
using namespace std;
int a[20], n, k, ans;
int ss(int x)
{
    if (x == 2) return 1;
    for (int i = 2; i <= sqrt(x); i++)
        if (x % i == 0) return 0;
    return 1;
}
void dfs(int m, int sum, int st)
{
    if (m == k)
    {
        if (ss(sum)) ans++; return ;
    }
    for (int i = st; i < n; i++)
        dfs(m + 1, sum + a[i], i + 1);
    return ;
}
int main()
{
    cin >> n >> k;
    for (int i = 0; i < n; i++)
        cin >> a[i];
    dfs(0, 0, 0);
    cout << ans;
    return 0;
}

P1060 [NOIP2006 普及组] 开心的金明 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)

典型的\(01\)背包模版题

#include<bits/stdc++.h>

using i64 = long long;

using namespace std;

typedef pair<i64, i64> PII;

int main() {
    ios::sync_with_stdio(false);
    cin.tie(nullptr);

    int n, m;
    cin >> n >> m;
    vector<int> v(m), p(m);
    for (int i = 0; i < m; i ++)
        cin >> v[i] >> p[i];

    vector<i64> dp(n + 1, 0);

    for (int i = 0; i < m; i ++) {
        for (int j = n; j >= v[i]; j--) {
            dp[j] = max(dp[j], dp[j - v[i]] + v[i] * p[i]);
        }
    }

    cout << dp[n] << '\n';

    return 0;
}

P1100 高低位交换 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)

先把\(n\)的前\(16\)位都取出来然后左移16位就得到了答案的前\(16\)位,然后直接将\(n\)右移\(16\)位就得到后\(16\)位数了,最后加起来就行

#include<bits/stdc++.h>

using i64 = long long;

using namespace std;

typedef pair<i64, i64> PII;

int main() {
    ios::sync_with_stdio(false);
    cin.tie(nullptr);

    int n;
    cin >> n ;

    i64 p = (n & 65535), q = (n >> 16);

    p <<= 16;

    cout << (p + q) << '\n';
    return 0;
}

P1097 [NOIP2007 提高组] 统计数字 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)

就是统计每个数字的出现次数以及排序,可以直接用map,map里的数会自动排序

#include <bits/stdc++.h>

using namespace std;

const int N = 1e6 + 10;

int main() {

    int n,m;
    cin >> n;
    map<int,int> mp;
    for(int i = 0 ;i < n;i ++){
        cin >> m;
        mp[m]++;
    }
    for(auto [x,y] : mp)
        cout << x << ' ' << y << endl;

    return 0;
}

标签:10,洛谷,int,cin,++,using,100
From: https://www.cnblogs.com/Kescholar/p/17652342.html

相关文章

  • IPQ6010 QCN9074|Unleashing the Power of Long-Range Transmission in IIoT, Smart C
    UnleashingthePowerofLong-RangeTransmissioninIIoT,SmartCities,andSmartPortswithIPQ6010QCN9074Intheever-evolvinglandscapeofwirelesscommunication,thepossibilitiesseemboundless.Astechnologysurgesforward,sodoesourabilitytobri......
  • 麒麟V10系统软件商店无法更新问题
    一、常规更新操作(用V10激活sp1后,源会变为V10源,并且会持续修复源,添加修改只能一时有用)1.麒麟系统的软件商店少部分机器会出现无法自动更新的情况,那么,这时你需要手动更新。打开终端输入命令sudoapt-getupdate2.更新完后,打开软件商店,一般会直接弹出提示,软件商店需要下载更新3.......
  • 用友与10家数科公司签约,共建行业数智化新生态
    在国资委相关政策的指导下,央国企竞相成立数科公司,加速数智化与国产化进程,近500家数字科技类公司应运而生,组成了“数字经济国家队”。当前,数科公司的运营模式正在悄然发生转变,即从以往只服务集团内部,转变成为行业赋能。数科公司不仅需要面临从产品到运营的挑战,还需要在服务好集团企......
  • Python基础入门学习笔记 073 GUI的终极选择:Tkinter10
    Munu组件Tkinter提供了一个Menu组件,用于实现顶级菜单、下拉菜单和弹出菜单。实例1:创建一个顶级菜单(或称窗口主菜单)1fromtkinterimport*23defcallback():4print("被调用了")56root=Tk()789menubar=Menu(root)#创建一个顶级菜单10m......
  • 「题解」Codeforces 1063F String Journey
    先reverse一下。不难看出选出的字符串长度为\(1,2,\cdots,k\)一定不劣,仅考虑这种形式的。然后考虑一手dp,设\(f_{i}\)表示最后一个子串是\(i\)为结尾,最长长度是多少。这样转移就是\(f_i\getsf_{j}+1,iff\s[j-f_j+1,j]\text{is}s[i-f_j,i]\text{'ssubstring}\)......
  • poj 1001 a+b
    #include<stdio.h>#include<stdlib.h>#include<string.h>#include<math.h>#include<iostream>usingnamespacestd;intmain(){inta,b;while(scanf("%d%d",&a,&b)!=EOF)printf("%d......
  • hdu 1003 最大最长上升子序列 贪心
    要想找到符合条件的序列,我们应该有以下条件 一个数重头开始遍历相加,如果这个数大于0的话,继续加后面的数,如果小于0的话,重后面的数开始重新遍历;这个过程中保证了大数一定会出现,所以应该找出大数;sum大于0的话,与后面的数相加有可能是最大数;如果小于0,则,重新开始会比以前的数更大;一下是......
  • hdu 1003 最大最长子序列 dp
    我的dp思路是记b[j]表示到到j位,最大最长的子序列的和则可得状态转移方程b[j]=max(b[j-1]+a[j],a[j]);因为每个数都有两种状态,要么和前面相连,要么自己相连;让后再比较出来最大值;一下是我的代码#include<stdio.h>#include<stdlib.h>#include<stdlib.h>#include<math.h>#includ......
  • iZotope RX 10 mac强大的音频修复工具
    iZotopeRX10Mac版(置顶文获取)是一个强大的音频修复工具,可帮助您修复音频设备上的错误。它为您提供了高质量的音频质量,并允许您对损坏的乐器进行自定义和编辑。RX是一个免费的插件,它可以修复您设备上的所有音频错误。如果您正在寻找一款能帮助修复音频问题的插件,那么这是一款必......
  • win10关闭自动更新
    一、禁用WindowsUpdate服务 1、同时按下键盘Win+R,打开运行对话框,然后输入命令services.msc,点击下方的“确定”打开服务,如下图所示。2、找到WindowsUpdate这一项,并双击打开,如图所示。3、双击打开它,点击“停止”,把启动类型选为“禁用”,最后点击应用,如下图。4、接......