首页 > 其他分享 >10.31 解题报告

10.31 解题报告

时间:2022-10-31 22:36:07浏览次数:54  
标签:10 10.31 报告 int long read 解题 pts define

T1

考场用时:\(30\) min
期望得分:\(100\) pts
实际得分:\(100\) pts
考虑最小的单元是 \(4=2\times 2\),所以对于所有的数按照 \(\mod 4\) 的余数来分四类。

对于比较小的数,打表求出,大的一定有解,构造方案在注释里。

#include<bits/stdc++.h>
#define ll long long
#define int long long
//#define ull unsigned long long
#define lc(k) k<<1
#define rc(k) k<<1|1
#define lb lower_bound
#define orz cout<<"gzn ak ioi\n"
const int MAX=1e6+10;
const int MOD=1e9+7;
using namespace std;
inline char readchar() {
	static char buf[100000], *p1 = buf, *p2 = buf;
	return p1 == p2 && (p2 = (p1 = buf) + fread(buf, 1, 100000, stdin), p1 == p2) ? EOF : *p1++;
}
inline int read() {
#define readchar getchar
	int res = 0, f = 0;
	char ch = readchar();
	for(; !isdigit(ch); ch = readchar()) if(ch == '-') f = 1;
	for(; isdigit(ch);ch = readchar()) res = (res << 1) + (res << 3) + (ch ^ '0');
	return f ? -res : res;
}
inline void write(int x) {
    if(x<0){putchar('-');x=-x;}
    if(x>9) write(x/10);
    putchar(x%10+'0');
}
/*
对于<4的,无解
对于>=4的
n%4=0 	n>=4时2*2+2*2...
n%4=1 	>=9的:3*3+2*2+2*2...
n%4=2	>=6的:2*3+2*2+2*2
n%4=3	3*5+2*2+2*2...
先打出 15 以内的表,其他的按照上述构造方式,都有解。 
*/
int biao[20]={0,0,0,0,1,0,1,0,1,1,1,0,1,1,1,1};
signed main(){
//	freopen("a.in","r",stdin);
//	freopen("a.out","w",stdout);
	int T=read();
	while(T--){
		int n=read();
		if(n<=15) write(biao[n]);
		else putchar('1');
		putchar('\n');
	}
	return 0;
}

T2

考场用时:\(80\) min
期望得分:\(20\) pts
实际得分:\(20\) pts
这题考场上想到了由高到低按位贪心,但是没想到怎么 check,其实用 dp 来求出不打乱前 \(i-1\) 位并且保证第 \(i\) 位是 \(1\) 的前提下,能够分的最大段数,与 \(m\) 比较,计入贡献即可。

#include<bits/stdc++.h>
#define ll long long
#define int long long
//#define ull unsigned long long
#define lc(k) k<<1
#define rc(k) k<<1|1
#define lb lower_bound
#define orz cout<<"gzn ak ioi\n"
const int MAX=1e6+10;
const int MOD=1e9+7;
using namespace std;
inline char readchar() {
	static char buf[100000], *p1 = buf, *p2 = buf;
	return p1 == p2 && (p2 = (p1 = buf) + fread(buf, 1, 100000, stdin), p1 == p2) ? EOF : *p1++;
}
inline int read() {
#define readchar getchar
	int res = 0, f = 0;
	char ch = readchar();
	for(; !isdigit(ch); ch = readchar()) if(ch == '-') f = 1;
	for(; isdigit(ch);ch = readchar()) res = (res << 1) + (res << 3) + (ch ^ '0');
	return f ? -res : res;
}
inline void write(int x) {
    if(x<0){putchar('-');x=-x;}
    if(x>9) write(x/10);
    putchar(x%10+'0');
}
int a[MAX],f[MAX],sum[MAX];
signed main(){
	int T=read();
	while(T--){
		int n=read(),m=read(),ans=0;
		for(int i=1;i<=n;i++) a[i]=read();
		for(int i=1;i<=n;i++) sum[i]=sum[i-1]^a[i];
		for(int i=29;i>=0;i--){
			memset(f,-1,sizeof f);
			f[0]=0;
			for(int j=1;j<=n;j++)
				for(int k=0;k<j;k++){
					if(f[k]==-1) continue;
					int t=sum[j]^sum[k];
					if((ans&t)<ans) continue;//保证前i-1位不变
					if(!(t&(1ll<<i))) continue;//保证该位为1
					f[j]=max(f[k]+1,f[j]); 
				}
			if(f[n]>=m) ans|=(1ll<<i);//能分成>=m段 
		}
		cout<<ans<<endl; 
	}
	return 0;
}

T3

考场用时:\(1.5\) h
期望得分:\(10\) pts
实际得分:\(10\) pts
这题是一个大分讨 dp,考场开始想写组合做法,但是推着推着发现细节巨多,巨麻烦,就弃了,写了个暴力本地挂着,一边跑一边对着跑出来的找规律,除了一个没什么用的 \(f_n=f_{n-1}+f_{n-2}\) 之外没找到什么规律,暴力一直跑到考试结束只跑出来 \(n=14\) 以内的,于是把 \(14\) 以内的表粘上就走人了。

标签:10,10.31,报告,int,long,read,解题,pts,define
From: https://www.cnblogs.com/wapmhac/p/16846092.html

相关文章

  • 10.31集训解题报告(自家隔离时期)
    A题面:对于给定的一个正整数\(n\),判断\(n\)是否能分成若干个正整数之和(可以重复),其中每个正整数都能表示成两个质数乘积。思路:随随便便找规律就找出来了。代码:intq......
  • [2022.10.31]集合与数组
    数组与集合1.集合与数组存储数据概述:集合、数组都是对多个数据进行存储操作的结构,简称Java容器。说明:此时的存储,主要指的是内存层面的存储,不涉及到持久化的存储(.txt,.jpg,......
  • Vulnhub Lin.Security靶机解题过程
    Lin.Security靶机地址:http://www.vulnhub.com/entry/linsecurity-1,244/由于靶机的作者直接给出了ssh用户名和密码,本题非常简单识别目标主机IP地址─(kali㉿kali)-[~/V......
  • 2022.10.31python学习第二天
    python集合(数组)1.列表:是一种有序和可更改的集合,允许重复的成员   列表用 []来编号  可通过索引号来访问列表项  ......
  • allure报告定制logo
    1.allure安装目录下找到config文件,修改allure.yml,增加 -custom-logo-plugin 2.将logo图片放到allure-2.14.0\plugins\custom-logo-plugin\static目录下,修改styles.cs......
  • 三大难题阻碍互联网医院发展--2020中国互联网医院发展研究报告
    《2020中国互联网医院发展研究报告》深度解析我国互联网医院当前建设进展、存在问题、未来建设发展趋势及典型互联网医院建设案例。“互联网医院”是指以实体医院为依托,以......
  • 《代码大全2》--------读书报告四
                      《代码大全2》-----读书报告4  在这半个月的时间内,我阅读了《代码大全2》的第六章节的内容。在本次阅读学习中,我学习到了关于抽......
  • 最长连续递增序列解题思路
    题目给定一个未经排序的整数数组,找到最长且连续递增的子序列,并返回该序列的长度。连续递增的子序列可以由两个下标l和r(l<r)确定,如果对于每个l<=i<r,都有nums[i]......
  • Vulnhub Quaoar靶机解题过程(难度:容易)
    Quaoar靶机地址:http://www.vulnhub.com/entry/hackfest2016-quaoar,180/识别目标主机IP地址(kali㉿kali)-[~/Vulnhub/Quaoar]└─$sudonetdiscover-ieth1Currentl......
  • 沁恒CH32V003F4P6 开发板上手报告和Win10环境配置
    CH32V003沁恒最近推出的低价CH32V003系列,基于青稞RISC-V2A内核,48MHz主频,2KBSRAM,16KBFlash,工作电压兼容3.3V和5V.主要参数如下SystemClock:48MHzSRAM:2......