QOJ.ac

QOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#549163#8276. Code Congestionliqingyang#AC ✓196ms475256kbC++141.0kb2024-09-06 10:46:352024-09-06 10:46:35

Judging History

你现在查看的是最新测评结果

  • [2024-09-06 10:46:35]
  • 评测
  • 测评结果:AC
  • 用时:196ms
  • 内存:475256kb
  • [2024-09-06 10:46:35]
  • 提交

answer

#include<iostream>
#include<cstring>
using namespace std;
const unsigned int mod=998244353;
inline void Add(int &x,int y)
{
	x+=y,x=x<mod?x:x-mod;
}
int n,T,a[210],t[210],p2[210],f[210][300010],g[210][300010];
int main()
{
	ios::sync_with_stdio(false);
	cin.tie(0);
	cin>>n>>T;
	for(int i=1;i<=n;i++)
	{
		cin>>a[i];
	}
	for(int i=1;i<=n;i++)
	{
		cin>>t[i];
	}
	for(int i=f[0][0]=1;i<=n;i++)
	{
		memcpy(f[i],f[i-1],sizeof(f[i]));
		for(int j=T;j>=t[i];j--)
		{
			Add(f[i][j],f[i-1][j-t[i]]);
		}
	}
	g[n+1][0]=1;
	for(int i=n;i;i--)
	{
		memcpy(g[i],g[i+1],sizeof(g[i]));
		for(int j=T;j>=t[i];j--)
		{
			Add(g[i][j],g[i+1][j-t[i]]);
		}
	}
	for(int i=p2[0]=1;i<=n;i++)
	{
		p2[i]=(p2[i-1]<<1)%mod;
	}
	long long ans=0;
	for(int i=1,s=0;i<=n;i++)
	{
		s+=t[i];
		__int128_t sum=0;
		for(int j=0,s=0;j<=T-t[i];j++)
		{
			sum+=(long long)
			p2[n-i]*f[i-1][T-t[i]-j];
		}
		for(int j=0;j<=T-s;j++)
		{
			sum+=(long long)
			p2[i-1]*g[i+1][j];
		}
		ans+=sum%mod*a[i];
	}
	cout<<ans%mod<<endl;
	return 0;
}

这程序好像有点Bug,我给组数据试试?

详细

Test #1:

score: 100
Accepted
time: 0ms
memory: 13800kb

input:

3 3
2 3 4
1 2 2

output:

40

result:

ok 1 number(s): "40"

Test #2:

score: 0
Accepted
time: 3ms
memory: 38736kb

input:

13 96
56231 258305 150103 164646 232643 37457 239584 192517 167805 215281 159832 98020 141006
54 1 38 1 4 1 4 11 1 4 8 22 1

output:

745634757

result:

ok 1 number(s): "745634757"

Test #3:

score: 0
Accepted
time: 4ms
memory: 38856kb

input:

14 86
205026 38691 58462 59767 205360 152715 7879 105238 33507 280429 54906 248241 102327 202931
1 49 1 1 5 12 1 5 9 18 1 1 3 32

output:

310231569

result:

ok 1 number(s): "310231569"

Test #4:

score: 0
Accepted
time: 3ms
memory: 42468kb

input:

14 85
82111 267744 229782 32542 260127 152775 1364 293699 23965 242667 264864 219673 189482 12945
1 5 1 1 2 1 38 14 1 3 4 1 21 53

output:

745175834

result:

ok 1 number(s): "745175834"

Test #5:

score: 0
Accepted
time: 0ms
memory: 43196kb

input:

15 94
119505 80865 95965 30047 68261 120903 113180 192738 220899 279742 32609 275645 38640 213859 282516
1 1 8 15 1 3 1 38 6 1 23 57 1 5 79

output:

970187257

result:

ok 1 number(s): "970187257"

Test #6:

score: 0
Accepted
time: 28ms
memory: 474512kb

input:

200 91
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1...

output:

602403195

result:

ok 1 number(s): "602403195"

Test #7:

score: 0
Accepted
time: 27ms
memory: 469628kb

input:

198 87
276373 259622 211541 127475 41483 45243 254828 92569 120672 280027 180073 248960 25052 110553 136460 102137 166179 165627 29260 33966 121236 34304 67399 250912 104260 114026 261774 159285 218100 110269 112808 224799 170009 150816 34232 290942 52872 176861 177679 36123 92008 39070 265659 25497...

output:

605480487

result:

ok 1 number(s): "605480487"

Test #8:

score: 0
Accepted
time: 166ms
memory: 470336kb

input:

198 234111
89712 73706 49851 196942 284937 252036 155683 1073 160017 24302 1736 21240 97245 116054 17583 258181 102901 54151 14410 251885 121370 135369 278761 195054 259593 292654 222660 193579 111738 119045 14083 214343 1531 298888 25144 88309 170939 62023 113276 169190 31076 65869 121858 158901 89...

output:

762578553

result:

ok 1 number(s): "762578553"

Test #9:

score: 0
Accepted
time: 52ms
memory: 471756kb

input:

199 51347
252659 63409 123416 60355 62358 56763 102379 176682 253785 179538 143669 238937 231314 96387 139004 89373 209360 270990 68703 136192 170160 114701 195611 137800 276330 225931 31636 164292 96730 265083 87466 101920 73722 215904 173793 12439 232863 199992 275055 35058 9090 19991 123969 16126...

output:

659774754

result:

ok 1 number(s): "659774754"

Test #10:

score: 0
Accepted
time: 23ms
memory: 473136kb

input:

199 193
281877 145142 61339 263979 290074 224117 116554 210487 236596 40332 279512 115797 80772 223156 234272 60309 65454 73398 68607 299733 212619 20774 93980 162827 88415 171874 237360 59866 1416 207446 222389 297320 133327 249794 74555 242580 176240 11249 259432 236537 235023 133620 223225 253266...

output:

777218291

result:

ok 1 number(s): "777218291"

Test #11:

score: 0
Accepted
time: 8ms
memory: 122180kb

input:

50 756
228896 201117 28445 23898 258744 221760 287052 284205 213698 193923 238353 273554 104230 45657 48068 142569 97940 136005 101800 70392 236209 269803 277695 4204 265615 186800 177441 269603 91437 121026 138283 187248 1793 144329 49812 214068 82633 271800 238111 206107 133808 131678 242602 12854...

output:

306757123

result:

ok 1 number(s): "306757123"

Test #12:

score: 0
Accepted
time: 0ms
memory: 121860kb

input:

49 896
222309 2984 141214 27320 70356 118537 243187 22055 16410 153276 110109 130296 100243 177715 278896 101771 175797 56180 43194 61709 83723 97026 66548 59377 290607 160007 243770 83478 162572 130113 295614 209317 270726 8240 217891 152168 149444 5953 150962 263112 251413 76008 262290 143396 9526...

output:

233615829

result:

ok 1 number(s): "233615829"

Test #13:

score: 0
Accepted
time: 0ms
memory: 123268kb

input:

50 825
22363 122426 144773 97133 182022 18905 64350 203411 57289 271378 115220 232152 146084 266835 71723 126783 140286 235142 161866 128092 4130 101780 26989 260105 223801 30789 204088 214173 30402 26543 11257 10749 45731 22534 152504 183529 117907 267801 293541 64520 46809 108156 9737 85517 51204 ...

output:

681195538

result:

ok 1 number(s): "681195538"

Test #14:

score: 0
Accepted
time: 7ms
memory: 235384kb

input:

98 8721
263042 289529 281955 89427 133885 50755 31062 103483 238269 127989 20094 247724 279099 181766 23924 80919 195591 295595 40269 71727 265824 170041 263460 68994 4726 179354 9077 116845 189303 44780 74054 155808 212015 91437 111256 209026 206198 44791 253213 163971 211258 144041 90842 205519 89...

output:

200292113

result:

ok 1 number(s): "200292113"

Test #15:

score: 0
Accepted
time: 15ms
memory: 235764kb

input:

98 8741
225872 288700 189511 196806 225120 274217 253157 146444 287797 3621 285106 38854 108280 188488 142516 160737 273780 129763 163930 201755 56670 119433 191038 73304 34842 202380 86150 173214 91738 293005 106191 56375 2859 83899 26631 18876 264951 41688 242722 124753 201474 112811 86496 215052 ...

output:

459746433

result:

ok 1 number(s): "459746433"

Test #16:

score: 0
Accepted
time: 150ms
memory: 472100kb

input:

199 277574
141689 225272 125107 151768 228208 186804 175264 16827 295516 209526 124641 261221 82656 270676 133451 143319 88685 240621 34249 278052 4419 78260 133343 92452 50129 49693 236168 166685 129020 32845 272172 230472 204327 48649 284108 275518 204892 54401 280521 115533 132840 270666 189150 8...

output:

240734076

result:

ok 1 number(s): "240734076"

Test #17:

score: 0
Accepted
time: 196ms
memory: 470536kb

input:

198 287619
284916 203413 139843 49889 185866 266946 266531 17129 197121 293732 257581 219723 150578 205283 6917 72781 23158 250507 204911 159775 293674 101678 191008 197221 76481 285483 164212 84643 288481 97161 273155 73778 182788 158493 175712 291729 109425 242114 18948 3201 119804 58576 35651 129...

output:

126120693

result:

ok 1 number(s): "126120693"

Test #18:

score: 0
Accepted
time: 31ms
memory: 475256kb

input:

200 6612
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1...

output:

929053212

result:

ok 1 number(s): "929053212"

Test #19:

score: 0
Accepted
time: 36ms
memory: 473084kb

input:

199 84
243795 165034 5639 75935 238817 147929 226544 293534 240274 90288 252102 106448 113215 48270 194928 286677 82268 16947 230906 291653 199441 196874 79425 231429 152205 180248 119488 20333 288621 26675 282256 286762 167295 262598 281773 199863 12706 83475 253214 169666 220315 33554 67239 299655...

output:

575921893

result:

ok 1 number(s): "575921893"

Test #20:

score: 0
Accepted
time: 11ms
memory: 120860kb

input:

49 803
288550 178987 294656 45204 282141 282775 68955 162258 75410 110866 154922 81774 138136 225479 205313 201679 104440 180675 9993 27446 44142 126909 124465 283498 156316 140718 150698 11003 227369 285704 208605 118444 42585 180580 163296 105493 171367 58057 270297 171145 186544 188305 161117 198...

output:

571469511

result:

ok 1 number(s): "571469511"

Test #21:

score: 0
Accepted
time: 163ms
memory: 469588kb

input:

198 258829
72869 103820 171732 88624 103832 207683 215248 129683 13606 59143 163386 286685 233726 60517 221204 70924 54072 271213 150284 80276 183493 123387 166471 244404 42566 278360 89026 150459 169611 218017 160379 220794 45830 112855 144288 149952 141077 205393 139375 114955 116736 279440 210708...

output:

32373803

result:

ok 1 number(s): "32373803"

Extra Test:

score: 0
Extra Test Passed