9.30SDFZCSP-J模考总结
我是傻逼我是傻逼我是傻逼我是傻逼\Huge我是傻逼我是傻逼\\我是傻逼我是傻逼\\我是傻逼我是傻逼我是傻逼我是傻逼
T3数组开小痛失50pts!!!!!!
分数
| T1 | T2 | T3 | T4 | 总分 |
|---|---|---|---|---|
| 100pts | 100pts | 50pts | 30pts | 280pts |
T1
简单爆搜
AC code:
#include<bits/stdc++.h>
#define int long long
#define endl "\n"
using namespace std;
const int maxn=1e6+5,mod=9e18;
int read(){int x=0,f=1;char ch=getchar();while(ch<'0'||ch>'9'){if(ch=='-')f=-1;ch=getchar();}while(ch>='0' && ch<='9')x=x*10+ch-'0',ch=getchar();return x*f;}
int Max(int a,int b){if(a>b)return a;else return b;}
int Min(int a,int b){if(a>b)return b;else return a;}
int add(int A,int B){return A+B>mod?A+B-mod:A+B;}
int sub(int A,int B){return A*B%mod;}
int fpow(int a,int b,int p){if(b==0){return 1;}int res=fpow(a,b/2,p)%p;if(b%2==1){return((res*res)%p*a)%p;}else{return(res*res)%p;}}
void fio(){freopen(".in","r",stdin);freopen(".out","w",stdout);}
int n,k,ans[maxn],vis[maxn];
void dfs(int pos){
if(pos>n){
for(int i=1;i<=n;i++){
printf("%d ",ans[i]);
}
puts(" ");
return;
}
for(int i=1;i<=k;i++){
if(vis[i]<2){
vis[i]++;
ans[pos]=i;
dfs(pos+1);
vis[i]--;
}
}
}
signed main(){
cin>>n>>k;
dfs(1);
return 0;
}
T2
数组模拟链表,存贮每个数前面的数和后面的数,纯傻逼题。
AC code:
#include<bits/stdc++.h>
#define int long long
#define endl "\n"
using namespace std;
const int maxn=1e6+5,mod=9e18;
int read(){int x=0,f=1;char ch=getchar();while(ch<'0'||ch>'9'){if(ch=='-')f=-1;ch=getchar();}while(ch>='0' && ch<='9')x=x*10+ch-'0',ch=getchar();return x*f;}
int Max(int a,int b){if(a>b)return a;else return b;}
int Min(int a,int b){if(a>b)return b;else return a;}
int add(int A,int B){return A+B>mod?A+B-mod:A+B;}
int sub(int A,int B){return A*B%mod;}
int fpow(int a,int b,int p){if(b==0){return 1;}int res=fpow(a,b/2,p)%p;if(b%2==1){return((res*res)%p*a)%p;}else{return(res*res)%p;}}
void fio(){freopen(".in","r",stdin);freopen(".out","w",stdout);}
int n,m,nxt[maxn],lst[maxn];
signed main(){
cin>>n>>m;
nxt[0]=1;
for(int i=1;i<=n;i++){
lst[i]=i-1;
nxt[i]=i+1;
}
while(m--){
int x,y;
cin>>x>>y;
int tmp=lst[x];
nxt[lst[x]]=nxt[x];
lst[nxt[x]]=tmp;
lst[x]=y;
nxt[x]=nxt[y];
lst[nxt[y]]=x;
nxt[y]=x;
}
int pos=0;
while(nxt[pos]!=n+1){
cout<<nxt[pos]<<' ';
pos=nxt[pos];
}
return 0;
}
/*
1 2 3 4 5
1 5 2 3 4
5 2 1 3 4
5 2 1 3 4
5 1 2 3 4
5 1 3 4 2
*/
T3
一眼题,Kruskal上板子,把没两个点连一条边,求MST即可。
我是傻逼,只开了1e6,艹
AC code:
#include<bits/stdc++.h>
#define int long long
#define endl "\n"
using namespace std;
const int maxn=1e7+5,mod=9e18;
const int MAXN=1e6+5;
int read(){int x=0,f=1;char ch=getchar();while(ch<'0'||ch>'9'){if(ch=='-')f=-1;ch=getchar();}while(ch>='0' && ch<='9')x=x*10+ch-'0',ch=getchar();return x*f;}
int Max(int a,int b){if(a>b)return a;else return b;}
int Min(int a,int b){if(a>b)return b;else return a;}
int add(int A,int B){return A+B>mod?A+B-mod:A+B;}
int sub(int A,int B){return A*B%mod;}
int fpow(int a,int b,int p){if(b==0){return 1;}int res=fpow(a,b/2,p)%p;if(b%2==1){return((res*res)%p*a)%p;}else{return(res*res)%p;}}
void fio(){freopen(".in","r",stdin);freopen(".out","w",stdout);}
struct point{
int x,y,z;
}poi[maxn];
struct Node{
int u,v,w;
bool operator<(Node b) const{
return w<b.w;
}
}edge[maxn];
int cnt=0,n;
int fa[maxn];
int find(int x){
if(fa[x]==x){
return x;
}
return fa[x]=find(fa[x]);
}
void uniset(int x,int y){
x=find(x);
y=find(y);
if(x!=y){
fa[x]=y;
}
}
void kruskal(){
int ans=0;
for(int i=1;i<=cnt;i++){
if(find(edge[i].u)!=find(edge[i].v)){
uniset(edge[i].u,edge[i].v);
ans+=edge[i].w;
}
}
cout<<ans;
}
signed main(){
cin>>n;
for(int i=1;i<=n;i++){
cin>>poi[i].x>>poi[i].y>>poi[i].z;
}
for(int i=1;i<=n;i++){
for(int j=i+1;j<=n;j++){
int mini=min(min(abs(poi[i].x-poi[j].x),abs(poi[i].y-poi[j].y)),abs(poi[i].z-poi[j].z));
edge[++cnt]={i,j,mini};
}
}
sort(edge+1,edge+cnt+1);
for(int i=1;i<=n;i++){
fa[i]=i;
}
kruskal();
return 0;
}
T4
考时随便码了个DP,样例没过居然30。
考时代码:
#include<bits/stdc++.h>
#define int long long
#define endl "\n"
using namespace std;
const int maxn=1e7+5,mod=9e18;
int read(){int x=0,f=1;char ch=getchar();while(ch<'0'||ch>'9'){if(ch=='-')f=-1;ch=getchar();}while(ch>='0' && ch<='9')x=x*10+ch-'0',ch=getchar();return x*f;}
int Max(int a,int b){if(a>b)return a;else return b;}
int Min(int a,int b){if(a>b)return b;else return a;}
int add(int A,int B){return A+B>mod?A+B-mod:A+B;}
int sub(int A,int B){return A*B%mod;}
int fpow(int a,int b,int p){if(b==0){return 1;}int res=fpow(a,b/2,p)%p;if(b%2==1){return((res*res)%p*a)%p;}else{return(res*res)%p;}}
void fio(){freopen(".in","r",stdin);freopen(".out","w",stdout);}
int n,m,a,b,c,B[maxn],C[maxn],dp[maxn];
signed main(){
cin>>n>>m>>a>>b>>c;
for(int i=1;i<=n;i++){
B[i] = (a = (1ll * a * ((b ^ c) + 20190430ll) + 19260817ll) % 2147483647) , swap(a , b);
C[i] = (a = (1ll * a * ((b ^ c) + 20190430ll) + 19260817ll) % 2147483647) , swap(a , b);
}
for(int i=1;i<=n;i++){
for(int j=m;j>=0;j--){
dp[j]=max(dp[j]+C[i],dp[j-1]+B[i]);
}
}
cout<<dp[m];
return 0;
}
9.30SDFZCSP-J模考总结的更多相关文章
- 【Java并发编程实战】-----“J.U.C”:CAS操作
CAS,即Compare and Swap,中文翻译为"比较并交换". 对于JUC包中,CAS理论是实现整个java并发包的基石.从整体来看,concurrent包的实现示意图如下 ...
- 【Java并发编程实战】-----“J.U.C”:Exchanger
前面介绍了三个同步辅助类:CyclicBarrier.Barrier.Phaser,这篇博客介绍最后一个:Exchanger.JDK API是这样介绍的:可以在对中对元素进行配对和交换的线程的同步点. ...
- 【Java并发编程实战】-----“J.U.C”:CountDownlatch
上篇博文([Java并发编程实战]-----"J.U.C":CyclicBarrier)LZ介绍了CyclicBarrier.CyclicBarrier所描述的是"允许一 ...
- 【Java并发编程实战】-----“J.U.C”:CyclicBarrier
在上篇博客([Java并发编程实战]-----"J.U.C":Semaphore)中,LZ介绍了Semaphore,下面LZ介绍CyclicBarrier.在JDK API中是这么 ...
- 【Java并发编程实战】-----“J.U.C”:ReentrantReadWriteLock
ReentrantLock实现了标准的互斥操作,也就是说在某一时刻只有有一个线程持有锁.ReentrantLock采用这种独占的保守锁直接,在一定程度上减低了吞吐量.在这种情况下任何的"读/ ...
- JAVA并发编程J.U.C学习总结
前言 学习了一段时间J.U.C,打算做个小结,个人感觉总结还是非常重要,要不然总感觉知识点零零散散的. 有错误也欢迎指正,大家共同进步: 另外,转载请注明链接,写篇文章不容易啊,http://www. ...
- Android Studio解决未识别Java文件(出现红J)问题
1.问题:java文件出现了红J的问题,正常情况下应该是显示蓝色的C标识. 2.解决方案:切换到project视图下,找到app这个module里的build.gradle,在android结构里插入 ...
- //给定N个整数序列{A1,A2,A3...An},求函数f(i,j)=(k=i~j)Ak的求和
//给定N个整数序列{A1,A2,A3...An},求函数f(i,j)=(k=i~j)Ak的求和 # include<stdio.h> void main() { ,sum1; ]={,- ...
- 面试题:给定数组a,找到最大的j-i, 使a[j]>a[i]
第一种方法: 用两重循环对每对点都试一下,然后取最大值即可,时间复杂度为O(n2) #include <iostream> #include <algorithm> using ...
- 关于i和j
算法课无聊随手写了段c代码,发现了个问题,就要下课了,先记一下 for(int i = 0; i < 100; i ++) for(int j = 0; j < 100000; j ++) ...
随机推荐
- .net 通过 HttpClient 下载文件同时报告进度的方法
通过 HttpClient 的 ContentLength 很多时候都可以拿到下载的内容的长度,通过 ReadAsync 可以返回当前读到的长度,将读取到的长度加起来就是已经下载的长度 看起来很简单, ...
- 共促数字经济高质量发展,天翼云出席2024 IDC中国年度盛典!
9月11日,2024 IDC中国年度盛典暨颁奖典礼在上海盛大启幕.本次峰会以「AI时刻,欢迎来到下一个大事件」为主题,汇聚行业专家.意见领袖,深度探讨生成式AI.中国企业出海.创新业务模式.科技可持续 ...
- 使用MTR网络诊断
安装 MTR Ubuntu: apt update apt upgrade apt install mtr-tiny CentOS: yum update yum install mtr 使用 MTR ...
- python切换版本
查看系统有什么版本的python ls/usr/bin/python* 1方法.通过修改 ~/.bashrc 文件更改python版本 alias python='/usr/bin/python3.4 ...
- FLink参数pipeline.operator-chaining介绍
1.当使用flink提交一个任务,没有给算子设置并行度情况下,默认所有算子会chain在一起,整个DAG图只会显示一个算子,虽然有利于数据传输,提高程序性能,但是无法看到数据的输入和疏忽,业绩反压相关 ...
- spring boot配置pagehelper插件
一.maven配置 <mybatis-spring.version>2.1.1</mybatis-spring.version> <pagehelper-spring.v ...
- 永久解决VSCode终端中文乱码问题
方法如下: 在VSCode中通过打开"文件"--"首选项"--"设置", 然后在"setting.json"中 添加以下 ...
- JUC并发—9.并发安全集合二
大纲 1.并发安全的数组列表CopyOnWriteArrayList 2.并发安全的链表队列ConcurrentLinkedQueue 3.并发编程中的阻塞队列概述 4.JUC的各种阻塞队列介绍 5. ...
- UE蓝图:准心锁定敌人实现,通过UI锁定敌人
UI控件蓝图 1.让UI动起来 (1) 创建事件AimMoveEvent,接受参数Dir,即UI的移动方向 (2) *5是控制ui的移动速度(阅者可自行调整,建议提升为参数),CorssHairP ...
- vivo 大规模容器集群运维平台实践
作者:来自 vivo 互联网服务器团队- Zhou Qi .Kong Manyu 容器平台已经成为支持应用运维和部署的重要基础设施,当前 vivo 内部容器平台共有20+生产集群,管理数万物理机节点, ...