c++ 题

物理
c++ 题

用户头像
ueq 更新于2025-2-8 13:55:54

做题是真的会哭出来的

屏幕截图 2024-09-01 171913.png屏幕截图 2024-09-01 171824.png屏幕截图 2024-09-01 171832.png

题解

屏幕截图 2024-09-01 173506.png

收起
10
6
共14条回复
时间正序
用户头像
ueq
9月前

屏幕截图 2024-09-01 174554.png充分体现了计算机的优势,对于人类巨大优势。

1条评论
用户头像
宋定谔的皮卡π号
8月前

费马小

用户头像
ueq
9月前

屏幕截图 2024-09-01 182609.png很简单的题,我只配做这个。

1条评论
用户头像
ueq
9月前

AAA屏幕截图 2024-09-01 182722.png

用户头像
ueq
9月前

我做过最难的题,是你们线性代数的基础,懒

题目背景

如果想要更好地测试高斯消元算法模板请在通过此题后尝试通过 SDOI2006 线性方程组 这一题。

题目描述

给定一个线性方程组,对其求解。

屏幕截图 2024-09-01 190459.png​​

输入格式

第一行,一个正整数 nn。

第二至 n+1n+1 行,每行 n+1n+1 个整数,为 a1,a2,…,ana1​,a2​,…,an​ 和 bb,代表一组方程。

输出格式

共 nn 行,每行一个数,第 ii 行为 xixi​(四舍五入保留 22 位小数)。

如果不存在唯一解或无解,在第一行输出 No Solution.

输入输出样例

输入 #1复制

3
1 3 4 5
1 4 7 3
9 3 2 2

输出 #1复制

-0.97
5.18
-2.39

说明/提示

本题 special judge 用于处理可能由于浮点数问题输出 -0.00 的情况。若某个 xixi​ 的解四舍五入后是 0.00,那么你的程序输出 -0.00 和输出 0.00 都是正确的。

数据范围:1≤n≤100,∣ai∣≤104,∣b∣≤1041≤n≤100,∣ai​∣≤104,∣b∣≤104。保证数据若有解则所有解均满足 ∣xi∣≤103∣xi​∣≤103,且 xi±10−6xi​±10−6 和 xixi​ 四舍五入后的结果相同(即不会因为较小的精度误差导致四舍五入后的结果不同)。

用户头像
ueq
9月前

不会啊这题屏幕截图 2024-09-01 202023.png

5条评论
用户头像
宋定谔的皮卡π号
8月前

把高精度加减乘除鞣一起了?这么复杂!!!

用户头像
ueq 回复 宋定谔的皮卡π号
8月前

我也不会,乐

用户头像
宋定谔的皮卡π号 回复 宋定谔的皮卡π号
8月前

有幸见过一些有趣的题,我可以发题吗?

用户头像
宋定谔的皮卡π号 回复 ueq
8月前

有幸见过一些有趣的题,我可以发题吗?

用户头像
ueq 回复 宋定谔的皮卡π号
8月前

感谢任何一位发题者,我也可以练练,我现在攻提高组

用户头像
ueq
9月前

题目背景

星川之下皆萤火尘埃,
我独行在人潮你天真而待。
相遇若是借丹青着色,
青原上 绯樱如海。

——银临《青原樱》(Cover 人衣大人)

题目描述

扶苏是一个非常喜欢边听古风鸽边写数学题的人,因此这道题其实是个五三原题。

扶苏希望重现青原上樱花盛开的景色,于是他准备了很多互不相同樱花树幼苗,准备种成一行。

这一行中,一共有 nn 个位置可以种下樱花,而扶苏准备了 mm 支幼苗。由于樱花盛放时对左右空间需求非常大,所以樱花不能紧挨着种植,也就是任意两支幼苗之间必须至少存在一个不种花的空位置。

按照这种方式种花并不难,但是令扶苏感到好奇的是一共有多少合法的方案让他把这 mm 支幼苗都种下去。一个方案是合法的当且仅当他满足上一段中叙述的要求。如果我们将花按照 1,2,3,…,m1,2,3,…,m 编号,两种方案不同当且仅当被选择种花的位置不同或从左向右数花的编号序列不同。

为了避免输出过大,答案对一个参数 pp 取模。

输入格式

每个输入文件中有且仅有一组测试数据。

测试数据只有一行四个整数,依次代表 type, n, m, ptype, n, m, p,其中 typetype 是一个帮助你判断测试点类型的参数,会在数据范围中说明。

输出格式

输出一行一个整数,代表答案对 pp 取模的结果。

输入输出样例

输入 #1复制

1 3 2 19260718

输出 #1复制

2

说明/提示

样例输入输出 1 解释

一共有 22 个樱花幼苗, 33 个种花的位置,如果给幼苗编号为 1, 21, 2,位置编号为 1, 2, 31, 2, 3,那么两种方案分别如下:

位置112233
方案 1幼苗 11幼苗 22
方案 2幼苗 22幼苗 11

数据规模与约定

本题采用多测试点捆绑测试,共有 6 个子任务。

子任务编号n≤n≤m≤m≤type=type=特殊性质子任务分值
1111100特殊性质 155
22020202011特殊性质 11515
3400400200200222020
42000200020002000332020
5200000020000001000000100000044特殊性质 22020
62000000200000010000001000000552020

特殊性质 1:保证对应测试点的实际方案数(在取模前)不超过 106106

特殊性质 2:保证 pp 是一个质数。

对于 100%100% 的数据,保证:

  • 1≤n≤2×1061≤n≤2×106。
  • 1≤m≤1061≤m≤106。
  • 1≤p≤1091≤p≤109。
  • 1≤m≤⌈n2⌉1≤m≤⌈2n​⌉。

提示

  • 请使用合适的数据类型来进行运算,避免溢出。
  • 参数 typetype 可以帮助你快速的判断子任务编号。
用户头像
ueq
8月前

有意思的题

题目描述

The long road through Farmer John's farm has NN crosswalks across it, conveniently numbered 1…N1…N (1≤N≤100,0001≤N≤100,000). To allow cows to cross at these crosswalks, FJ installs electric crossing signals, which light up with a green cow icon when it is ok for the cow to cross, and red otherwise. Unfortunately, a large electrical storm has damaged some of his signals. Given a list of the damaged signals, please compute the minimum number of signals that FJ needs to repair in order for there to exist some contiguous block of at least KK working signals.

共有N个信号灯,编号为1~N,有B个信号灯损坏,给你它们的编号。

问,最少修好几个信号灯,可以有K个编号连续的信号灯。

输入格式

The first line of input contains NN, KK, and BB (1≤B,K≤N1≤B,K≤N). The next BB lines each describe the ID number of a broken signal

输出格式

Please compute the minimum number of signals that need to be repaired in order for there to be a contiguous block of KK working signals somewhere along the road.

输入输出样例

输入 #1复制

10 6 5
2
10
1
5
9

输出 #1复制

1

说明/提示

感谢@ jlyzxxm1 提供题意简述

1条评论
用户头像
ueq
8月前

啊啊啊屏幕截图 2024-09-07 120458.png

用户头像
8月前
这个代码.....我学过
用户头像
宋定谔的皮卡π号
8月前

一道修改了28次,重构3次代码的题目

【题目描述】

小X终于答出了所有密钥并打开了梦境的大门。一阵猛烈的阳光猛地刺向了他的眼睛,缓了一会,小X突然发现自己置身于一片迷雾之中,面前是不知道何处而来的t张地图,上面赫然写着“想见到小L吗,那就先帮所有的可爱的小动物可以走出迷宫并且使得那些凶猛的动物走不出去吧!” “keso,又是我那亲爱的老丈人”,小X愤然的想到,接着他向地图望去:

只见地图上呈现出了n行m列的形状,每一个格子上有下列四种情况:

§ . 表示这个格子是空地。

§ # 表示这个格子是墙。

§ G 表示这个格子是可爱的小动物。

§ B 表示这个格子是凶猛的动物。(G,B格子都可以认为是空地。)

但是精疲力竭的小X已经无法再次战斗了,不得已他又双叒叕把目光看向了屏幕前的你:

你的任务是判断出能否 . 格子上放任意数量的墙,保证所有可爱的小动物可以通过在空地间移动到达点 (n,m) 而所有凶猛的动物都不行。

【输入格式】

第一行有一个正整数 T,表示有 T 组数据。

每组数据的第一行有两个正整数n,m,表示网格图的行数和列数。

之后 n 行,每行一个长度为 m 的字符串,描述了这张网格图。

保证 1≤t≤100,1≤n,m≤50。

【输出格式】

输出t行,对于每个地图,如果能通过放墙达成岳父的需求则输出“Yes”,否则输出“No”

【样例输入#1】

6
1 1
.
1 2
G.
2 2
#B
G.
2 3
G.#
B#.
3 3
#B.
#..
GG.
2 2
#B
B.

【样例输出#1】

Yes
Yes
No
No
Yes
Yes

【数据范围】

对于30%的数据,、t≤10,n、m≤10

对于100%的数据,1≤t≤100,1≤n,m≤50

对于第一个和第二个测试用例,所有条件都已满足。

对于第三个测试用例,只有一个空单元格(2,2);如果将其替换为墙,则(1,2)处的可爱的小动物将无法逃脱。

对于第四个测试用例,(1,1)处的可爱的小动物无法逃脱。

对于第五个测试用例,小X可以阻塞格子(2,3)和(2,2)。

对于最后一个测试用例,小X可以阻塞各自(2,2)。


5条评论
用户头像
宋定谔的皮卡π号
8月前

代码太多,先发一部分

#include <bits/stdc++.h>

using namespace std;

int t,f,s,n,m;

char a[1005][1005];

bool book[55][55];

int dx[10] = {0,1,-1,0,0};

int dy[10] = {0,0,0,1,-1};

struct loc {

    int x,y;

}loc_now,loc_next;

queue<loc> q;

queue<loc> kong;

void bfs(int x,int y) {

    loc_now.x = x;

    loc_now.y = y;

    book[loc_now.x][loc_now.y] = true;

    q.push(loc_now);

    while(!q.empty()) {

        loc_now = q.front();

        for(int i = 1;i <= 4;i++) {

            loc_next.x = loc_now.x + dx[i];

            loc_next.y = loc_now.y + dy[i];

            if(a[loc_next.x][loc_next.y] != '#'&&!book[loc_next.x][loc_next.y]) {

                if(loc_next.x == n&&loc_next.y == m) {

                    q = kong;

                    memset(book,false,sizeof(book));

                    f++;

                    return;

                }

                q.push(loc_next);

                book[loc_next.x][loc_next.y] = true;

            }

        }

        q.pop();

    }

    q = kong;

    memset(book,false,sizeof(book));

}

用户头像
宋定谔的皮卡π号 回复 宋定谔的皮卡π号
8月前

另一部分

int main() {

    cin>>t;

    for(int ti = 1;ti <= t;ti++) {

        bool flag = 1;

        s = 0,f = 0;

        cin>>n>>m;

        memset(a,'#',sizeof(a));

        for(int i = 1; i <= n; i++)

            for(int j = 1; j <= m; j++) {

                cin>>a[i][j];

                if(a[i][j] == 'G')  s++;

            }

        if(a[n][m] == 'B'){

            cout<<"No"<<endl;

            continue;

        }

        if(s == 0) {

            cout<<"Yes"<<endl;

            continue;

        }

        for(int i = 1;i <= n; i++) {

            for(int j = 1;j <= m; j++) {

                if(a[i][j] == 'B') {

                    if(a[i - 1][j] =='.') {

                        a[i - 1][j] = '#';

                    } else if(a[i - 1][j] == 'G') {

                        flag = 0;

                        break;

                    }

                    if(a[i + 1][j] =='.') {

                        a[i + 1][j] = '#';

                    } else if(a[i + 1][j] == 'G') {

                        flag = 0;

                        break;

                    }

                    if(a[i][j - 1] =='.') {

                        a[i][j - 1] = '#';

                    } else if(a[i][j - 1] == 'G') {

                        flag = 0;

                        break;

                    }

                    if(a[i][j + 1] =='.') {

                        a[i][j + 1] = '#';

                    } else if(a[i][j + 1] == 'G') {

                        flag = 0;

                        break;

                    }

                }

            }

            if(flag == 0)   break;

        }

        if(flag == 0||a[n][m] == '#') {

            cout<<"No"<<endl;

            continue;

        }

        if(a[n][m] == 'G')  f++;

        for(int i = 1; i <= n; i++)

            for(int j = 1; j <= m; j++)

                if(a[i][j] == 'G')  bfs(i,j);

        if(f == s)  cout<<"Yes"<<endl;

        else    cout<<"No"<<endl;

    }

    return 0;

}

真的太烦了,特判巨多,也算是考察细心程度吧

用户头像
ueq 回复 宋定谔的皮卡π号
8月前

样例有问题

用户头像
宋定谔的皮卡π号 回复 ueq
8月前

?哪个,具体说说

用户头像
爱()射的f w玻璃(emo 回复 ueq
8月前

?哪个

用户头像
即末用户8896
8月前

这些题是高几的zx-caizixing1@2x

1条评论
用户头像
芝士雪布
8月前
浙江这边六年级就接触了a wa
用户头像
ueq
8月前

题目背景

借助反作弊系统,一些在月赛有抄袭作弊行为的选手被抓出来了!

题目描述

现有 2n×2n(n≤10)2n×2n(n≤10) 名作弊者站成一个正方形方阵等候 kkksc03 的发落。kkksc03 决定赦免一些作弊者。他将正方形矩阵均分为 4 个更小的正方形矩阵,每个更小的矩阵的边长是原矩阵的一半。其中左上角那一个矩阵的所有作弊者都将得到赦免,剩下 3 个小矩阵中,每一个矩阵继续分为 4 个更小的矩阵,然后通过同样的方式赦免作弊者……直到矩阵无法再分下去为止。所有没有被赦免的作弊者都将被处以棕名处罚。

给出 nn,请输出每名作弊者的命运,其中 0 代表被赦免,1 代表不被赦免。

输入格式

一个整数 nn。

输出格式

2n×2n2n×2n 的 01 矩阵,代表每个人是否被赦免。数字之间有一个空格。

输入输出样例

输入 #1复制

3

输出 #1复制

0 0 0 0 0 0 0 1
0 0 0 0 0 0 1 1
0 0 0 0 0 1 0 1
0 0 0 0 1 1 1 1
0 0 0 1 0 0 0 1
0 0 1 1 0 0 1 1
0 1 0 1 0 1 0 1
1 1 1 1 1 1 1 1
1条评论
用户头像
ueq
8月前

#include<bits/stdc++.h>

using namespace std;

int n,a[1145][1145];

void dd(int n,int x,int y){

if(n){

dd(n-1,x,y+pow(2,(n-1)));

dd(n-1,x+pow(2,(n-1)),y);

dd(n-1,x+pow(2,(n-1)),y+pow(2,(n-1)));

}

else{

a[x][y]=1;

}

}

int main(){

cin>>n;

dd(n,1,1);

for(int i=1;i<=pow(2,n);i++){

for(int j=1;j<=pow(2,n);j++){

cout<<a[i][j]<<' ';

}

cout<<endl;

}

用户头像
ueq
8月前

 复制Markdown  展开

题目描述

给出两个字符串 s1s1​ 和 s2s2​,若 s1s1​ 的区间 [l,r][l,r] 子串与 s2s2​ 完全相同,则称 s2s2​ 在 s1s1​ 中出现了,其出现位置为 ll。
现在请你求出 s2s2​ 在 s1s1​ 中所有出现的位置。

定义一个字符串 ss 的 border 为 ss 的一个非 ss 本身的子串 tt,满足 tt 既是 ss 的前缀,又是 ss 的后缀。
对于 s2s2​,你还需要求出对于其每个前缀 s′s′ 的最长 border t′t′ 的长度。

输入格式

第一行为一个字符串,即为 s1s1​。
第二行为一个字符串,即为 s2s2​。

输出格式

首先输出若干行,每行一个整数,按从小到大的顺序输出 s2s2​ 在 s1s1​ 中出现的位置。
最后一行输出 ∣s2∣∣s2​∣ 个整数,第 ii 个整数表示 s2s2​ 的长度为 ii 的前缀的最长 border 长度。

输入输出样例

输入 #1复制

ABABABC
ABA

输出 #1复制

1
3
0 0 1 

说明/提示

样例 1 解释

对于 s2s2​ 长度为 33 的前缀 ABA,字符串 A 既是其后缀也是其前缀,且是最长的,因此最长 border 长度为 11。

数据规模与约定

本题采用多测试点捆绑测试,共有 3 个子任务。

  • Subtask 1(30 points):∣s1∣≤15∣s1​∣≤15,∣s2∣≤5∣s2​∣≤5。
  • Subtask 2(40 points):∣s1∣≤104∣s1​∣≤104,∣s2∣≤102∣s2​∣≤102。
  • Subtask 3(30 points):无特殊约定。

对于全部的测试点,保证 1≤∣s1∣,∣s2∣≤1061≤∣s1​∣,∣s2​∣≤106,s1,s2s1​,s2​ 中均只含大写英文字母。

用户头像
ueq
7月前

题目背景

某地ENLIGHTENEDXM研究所正在研究Portal的处理法则,想要揭示XM能量的来源以及应用XM能量ENLIGHTENED的首席科学家Jacks发现其能量的运算法则以及运算方法,但是方法十分复杂,仅靠人手工计算是很难算出答案的,所以它需要你协助他完成计算。

题目描述

Portal计算XM能量是通过个22个栈(00号栈,11号栈)实现的,它把对XM能量的操作如下

PUSHPUSH XX NUMNUM

把NUMNUM加入到X号栈的栈顶。

POPPOP XX

把XX号栈的栈顶元素删除。

ADDADD XX

取出00号栈和11号栈的元素各一个,并且把它的和放入XX号栈。

SUBSUB XX

取出00号栈和11号栈的元素各一个,并且把它的差的绝对值放入XX号栈。

DELDEL XX

清空XX号栈中所有元素不管栈是否为空。

MOVEMOVE XX YY

循环操直到YY号栈为空,把YY号栈的栈顶元素加入到XX号栈,删除YY号栈的栈顶元素。

数据保证X和Y不相同

SWAPSWAP

将两个栈的所有元素调换。

ENDEND

代表命令结束,并且分两行分别输出0号栈和1号栈由栈顶到栈底的元素的值,若栈内无元素,输出NONE。数据保证指令以END结束且仅有一个END,并且也需要输出SUCCESS

AKNOIAKNOI

等为无效操作,无效操作后不接数字。

更正不会有类似无效操作

对于每一行指令,若当前指令成功执行输出SUCCESS,若取出或删除元素时栈内为空或者没有对应指令输出UNSUCCESS并且不执行该行指令。

输入格式

输入若干行指令,以END指令结束

输出格式

对于每一次操作,都要对应输出SUCCESS或者UNSUCCESS,对于END根据指令描述输出栈内元素。

输入输出样例

输入 #1复制

PUSH 0 10
PUSH 0 20
PUSH 0 30
PUSH 0 40
PUSH 1 50
PUSH 1 60
ADD 0
ADD 0
ADD 0
END

输出 #1复制

SUCCESS
SUCCESS
SUCCESS
SUCCESS
SUCCESS
SUCCESS
SUCCESS
SUCCESS
UNSUCCESS
SUCCESS
150 30 20 10
NONE

输入 #2复制

PUSH 0 10
PUSH 0 20
PUSH 0 30
PUSH 0 40
PUSH 1 50
PUSH 1 60
MOVE 0 1
END

输出 #2复制

SUCCESS
SUCCESS
SUCCESS
SUCCESS
SUCCESS
SUCCESS
SUCCESS
SUCCESS
50 60 40 30 20 10
NONE

说明/提示

对于20%20%的数据 数据保证不会出现MOVE/SWAP操作,命令总数≤100命令总数≤100

对于40%40%的数据 命令总数≤1000命令总数≤1000

对于60%60%的数据 数据保证MOVE/SWAP的操作次数不会超过1000010000次,命令总数≤105命令总数≤105

对于100%100%的数据 0≤X,Y≤1,命令总数≤1060≤X,Y≤1,命令总数≤106

数据保证无论任何情况,栈中元素的值XX满足0≤x≤263−1​0≤x≤263−1​

题目创意来源OIERBBS

1条评论
用户头像
ueq
7月前

AUVc594a4ca8fe014423b5f2d412d051db1.png

京ICP备15041693号京公网安备 11010802025472号京公网安备 11010802025472号网络安全登记保护备案号 11010819139 - 00001教APP备1101010号

Copyright ©2015-2024 质心教育