首页 > 其他分享 >Day2

Day2

时间:2023-09-30 21:45:59浏览次数:21  
标签:ch int ll Day2 read gt define

Day 2

T1

赛时想的爆了,只能去拿40pts暴力

正解是统计质因子个数,然后二分答案判断每个质因子能否满足

但是可以只判2的个数,或者为了确保其不背卡常使用数十个质数即可。

#include <bits/stdc++.h>
#define ll long long
#define gt getchar
#define pt putchar
using namespace std;
inline ll read(){
    ll x=0,f=1;char ch=gt();
    while(!isdigit(ch)){if(ch=='-')f=-1;ch=gt();}
    while(isdigit(ch)){x=(x<<1)+(x<<3)+(ch^48);ch=gt();}
    return x*f;}
inline void print(ll x){if(x<0)pt('-'),x=-x;if(x>9)print(x/10);pt(x%10+48);}
void file(){freopen("a.in", "r", stdin);freopen("a.out", "w", stdout);}
int n, m;
int a[200005];
int t, res;
int get(int x)
{
    int ans = 0;
    while(x)ans += x / 2, x /= 2;
    return ans;
}
int main()
{
    file();
    n = read(), m = read();
    for(int i = 1; i <= m; ++ i)a[i] = read();
    sort(a + 1, a + m + 1);
    t = get(n);
    for(int i = 1; i <= m; ++ i)
    {
        if((res += get(a[i])) > t)
        {
            cout << i - 1;
            return 0;
        }
    }
    cout << m;
    return 0;
}

T2

赛时的dp写完了之后第二个大样例没过去,因为少判了多段不交合并的情况

改一改就行了

#include <bits/stdc++.h>
#define ll long long
#define gt getchar
#define pt putchar
using namespace std;
inline ll read(){
    ll x=0,f=1;char ch=gt();
    while(!isdigit(ch)){if(ch=='-')f=-1;ch=gt();}
    while(isdigit(ch)){x=(x<<1)+(x<<3)+(ch^48);ch=gt();}
    return x*f;}
inline void print(ll x){if(x<0)pt('-'),x=-x;if(x>9)print(x/10);pt(x%10+48);}
void file(){freopen("b.in", "r", stdin);freopen("b.out", "w", stdout);}
int n, k;
int a[505], val[505];
int f[505][505];
int main()
{
    //file();
    n = read(), k = read();
    for(int i = 1; i <= n; ++ i)a[i] = read(), val[i] = val[i - 1] ^ a[i];
    for(int l = n - 1; l; -- l)for(int r = l + 1; r <= n; ++ r){
        f[l][r] = 1 << 30;
        for(int g = r; g > l; g -= k - 1)f[l][r] = min(f[l][r], f[l][g - 1] + f[g][r]);
        if((r - l) % (k - 1) == 0)f[l][r] += val[r] ^ val[l - 1];
    }
    cout << f[1][n];
    return 0;
}

T3

标签:ch,int,ll,Day2,read,gt,define
From: https://www.cnblogs.com/qinzh/p/17738267.html

相关文章

  • 算法训练day22 LeetCode235
    算法训练day22LeetCode235.701.450.235.二叉搜索树的最近公共祖先题目235.二叉搜索树的最近公共祖先-力扣(LeetCode)题解代码随想录(programmercarl.com)对于二叉树,可以用递归回溯的方式对于二叉搜索树,由其根节点大于左右子树中结点,所以当第一次遍历到根节点值......
  • 代码随想录day21 | ● 530.二叉搜索树的最小绝对差 ● 501.二叉搜索树中的众数 ● 2
    530.二叉搜索树的最小绝对差classSolution{private:intresult=INT_MAX;TreeNode*pre=NULL;voidtraversal(TreeNode*cur){if(cur==NULL)return;traversal(cur->left);//左if(pre!=NULL){//中......
  • 算法训练day20 LeetCode654
    算法训练day20LeetCode654.617.700.98654.最大二叉树题目654.最大二叉树-力扣(LeetCode)题解代码随想录(programmercarl.com)使用递归返回节点地址,输入父节点地址,数组终止条件是输入地数组为空单层操作:如果输入数组为空,则返回父节点地址否则找到数组中最大......
  • 算法打卡|Day2 数组part02
    Day2数组part02今日任务:977.有序数组的平方,209.长度最小的子数组,59.螺旋矩阵II目录Day2数组part02今日任务:977.有序数组的平方,209.长度最小的子数组,59.螺旋矩阵IIProblem:977.有序数组的平方思路解题方法复杂度CodeProblem:209.长度最小的子数组思路解题方法复杂......
  • Java(day20):泛型和枚举
    前言Java是一种面向对象的、跨平台的编程语言,在软件开发中应用广泛。在Java中,泛型和枚举是两种重要的特性,它们能够提高代码的可读性和重用性。本文将介绍Java泛型和枚举的概念、语法、使用方法、测试用例等方面。摘要泛型是Java的一种抽象类型,它允许使用者在编写代码时不指定数......
  • 2021-7-23-Holiday23
    layout:posttitle:xtx暑假第二三周日志categories:日志tags:-日志-2021暑期日志BGImage:'https://github.xutongxin.me/https://raw.githubusercontent.com/xutongxin1/PictureBed/master/img0/20210904201804.png'jekyll-theme-WuK:musicid:'416......
  • 日常记录--day2--2023-9月12日--周二
    日程:今天只有上午有课,7点起床,上午是数据结构和马原,上数据结构的第一节课有一点困,不过撑住了,第二节课精神不错(早八真是害死人),下午午休有点过头了,休息到头昏脑胀。晚上7-9点学了会Java,完成了力扣每日一题。学了什么:下午简单学习了Java,晚上写了一道链表,一道哈希表,小有收获。PS:不想......
  • 【Leetcode】解题报告Day1~Day2
    解题报告Day11.2235.两数之和给你两个整数num1和num2,返回这两个整数的和。示例1:输入:num1=12,num2=5输出:17解释:num1是12,num2是5,它们的和是12+5=17,因此返回17。示例2:输入:num1=-10,num2=4输出:-6解释:num1+num2=-6,因此返回-6。提示:......
  • CS自学day2
    (ps补充:scanf这个函数是c语言自带的但是在vs中会报错或者产生警告,这边解决方法有两种一就是上一篇说的使用scanf_s但是注意,此种方法的跨平台性和可移植性降低了也就是说解决的是燃煤之急但是不是根本原因哈,所以推荐第二种方法就是在源文件中的第一行敲#define_CRT_SECURE_NO_WARNING......
  • day2 - 数组part02
    力扣977.有序数组的平方思路1:双指针,在数组中心的两个数,作为左右指针的开始,循环比较左右指针,找出最小的平方,插入到结果数组中。此思路是错误的,因为数组中心不见得是平方最小的数,比如数组:-4,-3,-2,-1如果要输出的话,第一个就应该输出-1,并不是最中心的数。思路2:那我先遍历数组,找出......