网站建设 宁夏,wordpress留言源码,php开发网站怎么做,wordpress打开只显示代码作者#xff1a;指针不指南吗 专栏#xff1a;蓝桥杯倒计时冲刺 #x1f43e;马上就要蓝桥杯了#xff0c;最后的这几天尤为重要#xff0c;不可懈怠哦#x1f43e; 文章目录1.质因子2.蓝桥王国1.质因子 题目 链接#xff1a; 1545. 质因子 - AcWing题库 给定一个整数 N… 作者指针不指南吗 专栏蓝桥杯倒计时冲刺 马上就要蓝桥杯了最后的这几天尤为重要不可懈怠哦 文章目录1.质因子2.蓝桥王国1.质因子 题目 链接 1545. 质因子 - AcWing题库 给定一个整数 N找出它的所有质因子并按如下格式输出 Np1k1∗p2k2∗...∗pmkmp1^{k1}*p2^{k2}*...*pm^{km}p1k1∗p2k2∗...∗pmkm 注意: 如果 N1 则输出 11。 输入格式 一个整数 N。 输出格式 输出时按 Np1^k1*p2^k2*...*pm^km 的格式输出答案。 其中 pi 是质因子应按照递增顺序排列ki 是 pi 的指数如果 ki 为 1则不必输出。 数据范围 1≤N≤2312^{31}231−1 输入样例 97532468输出样例 975324682^2*11*17*101*1291第一次 AC 90% #includebits/stdc.h
using namespace std;typedef long long ll;void f(int n)
{for(int i2;in/i;i){int s0;while(n%i0){n/i;s;}if(s0)continue;if(s1) couti*;elsecouti^s*;}if(n1)coutn;
}int main()
{ll n;cinn;coutn;if(n1)coutnendl;elsef(n);return 0;
}第一次的符号输出有问题 题解 #includebits/stdc.h
using namespace std;int main()
{long long n;cinn;if(n1) //特判{cout11;return 0;}coutn;bool first_use 1; //解决符号问题for(long long i2;in/i;i) //分解质因子的模板{ if(n%i0) //注意这里需要判断再s0{int s0;while(n%i0){n/i;s;}if(first_use) first_use0; //符号这里要注意else cout*;couti;if(s1) cout^s;}}if(n1)if(first_use)coutn;else cout*n;return 0;
}反思 数据范围复习 unsigned int04294967295 (10位数4e9)int-21474836482147483647 (10位数2e9 2312^{31}231-1)long long-92233720368547758089223372036854775807 (19位数 9e18 ) 2632^{63}263-1unsigned long long018446744073709551615 (20位数1e19) 2642^{64}264 - 1其实这个题我试了试 不用 long long 也能 AC 但是 考试的时候 还是 long long 吧万一越界了呢 我胆小 这个题输出带有运算符号 第一次我都整晕了没有想起来有 flag 来标记第一个* 带在每一质因子的前面一直想的是*带在后面想了好久最后一个怎么不带 这个符号 T-T 输出技巧使用 flag 标记第一个数符号带在数的前面说的有点抽象结合上面这个题理解使用 多个 if else 来判断条件是否输出相对应的符号
2.蓝桥王国 题目 链接 蓝桥王国 - 蓝桥云课 (lanqiao.cn) 小明是蓝桥王国的王子今天是他登基之日。 在即将成为国王之前老国王给他出了道题他想要考验小明是否有能力管理国家。 题目的内容如下 蓝桥王国一共有 N 个建筑和 M 条单向道路每条道路都连接着两个建筑每个建筑都有自己编号分别为 1∼N 。其中皇宫的编号为 1 国王想让小明回答从皇宫到每个建筑的最短路径是多少但紧张的小明此时已经无法思考请你编写程序帮助小明回答国王的考核。 输入描述 输入第一行包含三个正整数N,M。 第 2 到 M1 行每行包含三个正整数 u,v,w表示 u→v 之间存在一条距离为 w 的路。 1≤N≤3×10510^51051≤m≤10610^61061≤ui, vi≤N0≤wi≤10910^9109 。 输出描述 输出仅一行共 N 个数分别表示从皇宫到编号为 1∼N 建筑的最短距离两两之间用空格隔开。如果无法到达则输出 −1 输入输出样例 示例 1 输入 3 3
1 2 1
1 3 5
2 3 2输出 0 1 3第一次 AC 0% #includebits/stdc.h
using namespace std;const int N3*1e210,M1e610;int n,m;
bool st[N];
int g[N][N];
int dist[N];void dijkstra()
{memset(dist,0x3f,sizeof dist);dist[1]0;for(int i1;in;i){int t-1;for(int j1;in;j)if(!st[j](t-1||dist[t]dist[j]))tj;st[t]true;for(int j1;jn;j){dist[j]min(dist[j],dist[t]g[t][j]); }} }int main()
{ scanf(%d%d,n,m);memset(g,0x3f,sizeof g);while(m--){int a,b,w;scanf(%d%d%d,a,b,w);g[a][b]min(g[a][b],w);}dijkstra();for(int i1;in;i)if(dist[i]0x3f3f3f3f) cout-1;else coutdist[i] ;return 0;
}没输出 第二次 AC 50% #includebits/stdc.h
using namespace std;typedef pairint,int PII;const int N3*1e510;int n,m;
int h[N],e[N],w[N],ne[N],idx;
bool st[N];
int dist[N];void add(int a,int b,int c)
{e[idx]b,w[idx]c,ne[idx]h[a],h[a]idx;
}void dijkstra()
{memset(dist,0x3f,sizeof dist);dist[1]0;priority_queuePII,vectorPII,greaterPII heap;heap.push({0,1});while(heap.size()){auto theap.top();heap.pop();int vist.second,distancet.first;if(st[vis])continue;st[vis]1;for(int ih[vis];i!-1;ine[i]){int je[i];if(dist[j]distancew[i]){dist[j]distancew[i];heap.push({dist[j],j});}}}
}int main()
{scanf(%d%d,n,m);memset(h,-1,sizeof h);while(m--){int a,b,c;scanf(%d%d%d,a,b,c);add(a,b,c);}dijkstra();for(int i1;in;i)if(dist[i]0x3f3f3f3f) cout-1 ;else coutdist[i] ;return 0;} 第三次 AC 100% #includebits/stdc.h
using namespace std;typedef long long ll;typedef pairlong long,int PII;const int N5*1e510;ll n,m;
ll h[N],e[N],w[N],ne[N],idx;
bool st[N];
ll dist[N];void add(ll a,ll b,ll c)
{e[idx]b,w[idx]c,ne[idx]h[a],h[a]idx;
}void dijkstra()
{memset(dist,0x3f,sizeof dist);dist[1]0;priority_queuePII,vectorPII,greaterPII heap;heap.push({0,1});while(heap.size()){auto theap.top();heap.pop();ll vist.second;long long distancet.first;if(st[vis])continue;st[vis]1;for(ll ih[vis];i!-1;ine[i]){ll je[i];if(dist[j]distancew[i]){dist[j]distancew[i];heap.push({dist[j],j});}}}
}int main()
{scanf(%lld%lld,n,m);memset(h,-1,sizeof h);while(m--){ll a,b,c;scanf(%lld%lld%lld,a,b,c);add(a,b,c);}dijkstra();for(ll i1;in;i)if(dist[i]0x3f3f3f3f3f3f3f3f) cout-1 ; //long long 需要 8个3felse coutdist[i] ;return 0;} 反思 第一次直接用错模板了 朴素版的模板用于稠密图矩阵存堆优化版用于稀疏图邻接表存 m是 10510^5105 级别的话就是稠密图m是n级别的就是稀疏图 ps数组元素个数不能太多一开始用的 1e5 编译过不去